ALTER TABLE CVECountsByDate DROP COLUMNS IF EXISTS (SELECT COLUMN_NAME
Columns FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = CVECountsByDate AND COLUMN_NAME LIKE 'D201609__'
这实际上应该有这样的输出:
ALTER TABLE CVECountsByDate DROP COLUMNS IF EXISTS (SELECT COLUMN_NAME
Columns FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'CVECountsByDate' AND COLUMN_NAME LIKE 'D201609__'
我忘了用引号将表名括起来。是的,我的前额中央有一个红色的手印。
因此,查询本身的内容如下:
DECLARE @DynSql nvarchar(MAX) = 'ALTER TABLE CVECountsByDate DROP
COLUMNS IF EXISTS (SELECT COLUMN_NAME Columns FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''CVECountsByDate''' AND
COLUMN_NAME LIKE ''' + @PrevYear + ''')'