【问题标题】:How to update a Database Field table using a Stored Procedure?如何使用存储过程更新数据库字段表?
【发布时间】: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


【解决方案1】:

由于您有特定的值要更新,所以只需使用

UPDATE table
   SET description = 'For example: hello, are you okay?'
 WHERE description = 'hello, are you okay?'

UPDATE table
   SET description = 'Hello and thank you'
 WHERE description = 'goodbye and thank you'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    相关资源
    最近更新 更多