SQL使用存储过程更新每个行值(旧值+参数)

时间:2014-08-11 08:38:07

标签: sql sql-server stored-procedures

我正在使用C#程序中的存储过程。我需要该过程来创建一个包含旧表值的新表,这是一个简单的部分。

困难的部分是使用参数更新新表中的所有值。我新表中的所有值都必须如下所示

new_value = (parameter + old_value)

我自己尝试了以下内容,但语法错误,请你帮帮我

CREATE PROCEDURE [dbo].[combine_one_with_all_opponent]
(
   @tblname sysname,
   @value nchar(6)
)
AS
    DECLARE @sql nvarchar(4000) = NULL

    SELECT @sql = 'CREATE TABLE ' + quotename(@tblname) +
                  'SELECT _Value INTO ' + quotename(@tblname) + 
                  'FROM dbo.tbl_comm_cards

                   UPDATE ' + quotename(@tblname) + 
                  'SET _Value = ( ' + @value +' + _Value)'

    EXEC (@sql)

1 个答案:

答案 0 :(得分:0)

只需从查询中删除CREATE TABLE

即可

试试这个

CREATE PROCEDURE [dbo].[combine_one_with_all_opponent]
(
@tblname sysname,
@value nchar(6)
)
AS
    DECLARE @sql nvarchar(4000)

    SELECT @sql='SELECT _Value INTO ' + quotename(@tblname) + '
    FROM dbo.tbl_comm_cards opp

    UPDATE ' + @tblname +'
                SET _Value = ( ''' + @value +''' + _Value)'

    EXEC (@sql)