Я хочу напечатать динамический запрос для выполнения процедуры для всех таблиц в базе данных. Это то, что я написал до сих пор -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), который позволяет фильтровать таблицы, на которых он фактически выполняется. –