【发布时间】:2014-06-19 17:09:04
【问题描述】:
我在 dbo、stg、tmp 等不同架构中有许多包含列为“RowId”的表,但我想删除仅包含 stg 架构表的列。
请给出一个脚本来满足上述条件。
提前感谢
【问题讨论】:
标签: sql-server-2008-r2 alter-table alter
我在 dbo、stg、tmp 等不同架构中有许多包含列为“RowId”的表,但我想删除仅包含 stg 架构表的列。
请给出一个脚本来满足上述条件。
提前感谢
【问题讨论】:
标签: sql-server-2008-r2 alter-table alter
先备份
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
确定后,执行 dinamyc SQL 语句
exec sp_executesql @SqlStatement
【讨论】: