【发布时间】:2017-12-20 05:23:48
【问题描述】:
我需要生成多更新语句。
这段代码:
DECLARE @query as varchar(max);
SET @query =
'declare @data_dzis as nvarchar(10)
declare @data_wczoraj as nvarchar(10)
SELECT @data_dzis=convert(varchar,convert(int,convert(datetime,convert(date,GETDATE()))))
SELECT @data_wczoraj=convert(varchar,convert(int,convert(datetime,convert(date,GETDATE()-1))))
Select
''update V_''+IdStr + '' set start='' + @data_wczoraj + '' where DataVersionId=0 and start='' + @data_dzis +'';''
FROM [KW_GRECOS].[dbo].[Variable]
where Granularity=0 and IdStr<>''_ROOT_FOLDER_'''
exec(@query);
...生成更新列表作为记录集:
update V_G012 set start=43085 where DataVersionId=0 and start=43086;
update V_G059 set start=43085 where DataVersionId=0 and start=43086;
update V_G002a set start=43085 where DataVersionId=0 and start=43086;
update V_G0122 set start=43085 where DataVersionId=0 and start=43086;
update V_103D set start=43085 where DataVersionId=0 and start=43086;
update V_G072 set start=43085 where DataVersionId=0 and start=43086;
update V_G201 set start=43085 where DataVersionId=0 and start=43086;
update V_G001a set start=43085 where DataVersionId=0 and start=43086;
update V_G067a set start=43085 where DataVersionId=0 and start=43086;
我不知道如何自动执行它们。 我必须复制它们并手动执行,但这不是我的意思。
【问题讨论】:
-
因为归根结底是需要动态SQL的教程,所以这也可能是Dynamic SQL - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL)的副本
-
您遇到什么错误?如果没有错误是什么问题?
标签: sql sql-server tsql