Ich möchte eine dynamische Abfrage drucken, um eine Prozedur für alle Tabellen in der Datenbank auszuführen. Dies ist, was ich bisher geschrieben -sp_MSforceable, um die Prozedur für jede Tabelle auszuführen
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
'
Der Ausgang ist nicht das, was ich erwarte, dass es sein -
EXEC DROPCONSTANT @TBLNAME=bill, @FLDNAME='EMAIL_S'
Aber was ich wirklich will es -
EXEC DROPCONSTANT @TBLNAME='bill', @FLDNAME='EMAIL_S'
aussieht @ Aaron Antwort deckt diese ziemlich gut, aber wenn Sie benötigen tun 'sp_MSForeachtable' in die Zukunft, es hat einen [Parameter] (http://stackoverflow.com/a/9680217/15498), mit der Sie die Tabellen filtern können, gegen die sie tatsächlich ausgeführt wird. –