【发布时间】:2017-08-08 09:45:10
【问题描述】:
我基本上有一个数据库表,其中有一个名为DESCRIPTION的字段
我的桌子叫“Table123”
每条记录都是一个可以重复的短语。
我在这个表中有 10 条记录,在字段DESCRIPTION 中我有这样的短语:“你好,你还好吗?”四次,四次“再见,谢谢”,两次“祝你有美好的一天”。
我想通过存储过程来改变这个短语,因为我不能直接改变数据库表。
我想改变这个:在第一个短语中我想改变为“例如:你好,你还好吗?”在四个记录中,在第二个短语中我想在四个记录中更改为“Hello andThank you”。
我基本上必须创建一个存储过程来更改描述字段中短语的一部分或单词。
有什么帮助吗?
我在 SQL 管理工作室工作
我试过了:
USE [XXX]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateTable]
@XKey INT,
@XDescription NVARCHAR(MAX)
AS
BEGIN
begin transaction
begin try
set nocount on
UPDATE table
SET
Description = @VMDescription
WHERE ID = @VMKey
commit;
end try
begin catch
rollback transaction;
declare @errorMessage nvarchar(4000);
declare @errorSeverity int;
declare @errorState int;
select
@errorMessage = ERROR_PROCEDURE() + ': ' + ERROR_MESSAGE(),
@errorSeverity = ERROR_SEVERITY(),
@errorState = ERROR_STATE();
RAISERROR(@errorMessage,@errorSeverity,@errorState);
end catch
END
【问题讨论】:
-
你试过什么?为什么它不起作用?
-
另外,您使用的是什么 rdbms?
-
@HoneyBadger 和 Zohar 更新了我这样做的帖子,但不知道如何以及何时更改字段描述的文本...
-
Google for
CASEWHEN` 和UPDATE。你需要类似SET Description = CASE Description WHEN 'hello, are you okay?' THEN 'For example: hello, are you okay?' WHEN 'goodbye and thank you' THEN 'Hello and thank you' ....的东西。 -
我尝试了 alex 但 id 不起作用,我不知道我是否把它放在错误的地方你可以将它添加到我上面的代码中,并将它发布在我问题中的案例的回复中?谢谢
标签: sql database stored-procedures