更新多个表中的列

时间:2014-04-11 10:56:16

标签: sql-server

如何更新多个表中的列?

我正在设计一个具有多个Dim_tables的DW,其公共列名为DS,如何将其值设置为1?

我试过这个,但它给出了错误

use [DW]
go
exec sp_msforeachtable 'UPDATE ? SET [DS]=1'
go

Msg 207,Level 16,State 1,Line 3 列名称无效' DS'。

1 个答案:

答案 0 :(得分:1)

好吧,我明白了! 错误是因为在检查列之前编译了代码。我可以这样做:

EXEC sp_MSforeachtable 
@command1='
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=PARSENAME("?",2) AND TABLE_NAME=PARSENAME("?",1) AND COLUMN_NAME="DS")
BEGIN
   EXEC(''
          BEGIN
              UPDATE ? SET [DS]=1
          END
        '')
END
'