如何使用动态SQL更新具有多个条件的查询?

问题描述 投票:0回答:1

我正在尝试执行以下过程:

ALTER PROCEDURE UFP_PROCEDURE
    (@table_name1 varchar(100))
AS
BEGIN
    DECLARE @sql varchar(200);

    SET @sql = 'UPDATE' + @table_name1 +
               'SET' + QUOTENAME(operation) +  '=' + 'U' + 'where' + QUOTENAME(last_updated_time) + 'IS NOT NULL' + 'AND' + QUOTENAME(last_created_date) + 'IS NOT NULL' + 'AND'  + QUOTENAME(delete_flag) + 'IS NULL'

    EXEC(@SQL)
END

我没有获得如何将动态SQL与所有单引号一起使用的情况,并且QUOTENAME中的列作为无效列给出。

这里@table_name1是我从Azure管道传递的表名。

如果有人可以提供解决方案.....将非常有帮助。

sql azure dynamic azure-active-directory asset-pipeline
1个回答
0
投票

动态查询中存在多个问题,请按照以下说明进行更改。

ALTER PROCEDURE UFP_PROCEDURE
    (@table_name1 varchar(100))
AS
BEGIN
    DECLARE @sql varchar(200);

   set @sql = 'UPDATE ' + quotename(@table_name1) +
   ' SET ' + 'operation = U' + ' where' + 'last_updated_time IS NOT NULL AND last_created_date IS NOT NULL AND delete_flag IS NULL'

    EXEC(@SQL)
END
© www.soinside.com 2019 - 2024. All rights reserved.