如何从FUNCTION或SPROC和/或动态SQL更新表

时间:2017-03-13 16:06:48

标签: sql-server stored-procedures dynamic

我很多年没有编码,我需要帮助,请等。

我需要更新一个发生的事情表" somethings",这就是我需要的原因 打电话给"功能/程序"我可以传递参数,其中"那些 东西"会发生的。我知道......多么糟糕......例如:

BEGIN

UPDATE tab_or
SET [1] = (CASE WHEN ([1] IS NULL) THEN @aux 
                WHEN ([1] NOT LIKE '%'+@aux+'%') THEN CONCAT([1], ' | ', @aux) 
                ELSE [1] END)
WHERE [2] = (SELECT [2] FROM tab_or WHERE row_id = @row);

END;

因为这(以及其他类似说明会重复很多次)>我需要调用一个函数/过程"或其他类型的解决方案"我可以在哪里>给出2个参数(参数将是字段的名称,在这个> case [1]和[2]中)。

任何人都可以帮我编码吗?我坚持使用255000>的表格。线......不能在手边交叉......这就是我需要这个的原因>代码。

1 个答案:

答案 0 :(得分:0)

尝试将UpdateQuery放入VARCHAR并使用EXEC(@UpdateQuery)

见样本:

DECLARE @Test VARCHAR(8000)
DECLARE @1 VARCHAR(50)

SET @1 = 'Id'
SET @Test = 'SELECT ' + @1 + ' FROM table WHERE  LIKE ''%' + @param + '%'''

EXEC (@Test)