我有很多包含列的表格为" RowId"在不同的架构中,如dbo,stg,tmp等,但我想删除只有stg架构表的列。
请提供一个符合上述条件的脚本。
提前完成
答案 0 :(得分:0)
先备份
DECLARE @SqlStatement VARCHAR(MAX)
SELECT @SqlStatement =
COALESCE(@SqlStatement, '') + 'ALTER TABLE [stg].'
+ QUOTENAME(TABLE_NAME) + ' DROP COLUMN [RowId];' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN sys.objects o ON o.name=t.TABLE_NAME
INNER JOIN sys.columns c ON o.object_id= c.object_id
WHERE TABLE_SCHEMA = 'stg' and c.name='RowId'
PRINT @SqlStatement
一旦你恢复,执行动态SQL语句
exec sp_executesql @SqlStatement