我正在使用sql server 2008.我想循环遍历数据库中的所有表格,并使用特定的名称&想要仅更新enddatetime列数据与当前日期和时间匹配的记录。 enddatetime列存在于所有表中。在网上搜索后我遇到了这个代码,但我无法修改它以进行更新查询。请有人用正确的代码指导我吗?
EXEC sp_MSforeachtable
'
DECLARE @DateTimeToSearch datetime = GETDATE()
IF ''?'' LIKE ''%_PHGH_LINK_DETAILS%''
BEGIN
SELECT * FROM ? WHERE enddate = @DateTimeToSearch
END
'
答案 0 :(得分:0)
对于具有匹配字符串的表名,请使用以下查询
EXEC sp_MSforeachtable
'
IF ''?'' LIKE ''%yourtablename%''
BEGIN
Update ? set col1 = value where enddatetime = Getdate()
END'
对于特定的表列表,请使用以下查询
EXEC sp_MSforeachtable
'
IF ''?'' in ( ''[schema-name1].[table-name1]'',''[schema-name2].[table-name2]'')
BEGIN
Update ? set col1 = value where enddatetime = Getdate()
END'