我想打印一些動態查詢以在數據庫中的所有表上執行過程。這是我到目前爲止已經寫 -sp_MSforeachtable在每個表上執行過程
EXEC SP_MSFOREACHTABLE '
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME="EMAIL_S" AND TABLE_NAME=PARSENAME("?",1))
BEGIN
PRINT ''EXEC DROPCONSTANT @TBLNAME=''+PARSENAME("?",1)
+'', @FLDNAME=''''EMAIL_S'''' ''
PRINT CHAR(10)+CHAR(13)
END
'
輸出是不是我希望它是 -
EXEC DROPCONSTANT @TBLNAME=bill, @FLDNAME='EMAIL_S'
但我真正想要的 -
EXEC DROPCONSTANT @TBLNAME='bill', @FLDNAME='EMAIL_S'
看起來像@阿龍的回答涵蓋了這還算不錯,但如果你確實需要'sp_MSForeachtable'在未來,它有一個[參數](HTTP:/ /stackoverflow.com/a/9680217/15498),它允許您過濾它實際執行的表。 – 2012-03-30 12:15:01