目前,我基本上就像丢桌子一样 放表 scratch..TableName
如果我在其他单独的表中有所有表的名称,那么我可以通过加入而不是每次复制和粘贴名称来执行删除表吗?
所以我想做这样的事情..但我不知道如何将其写入SQL。我确实使用2008版。 表名与TableName表匹配,然后从头开始删除数据库。
答案 0 :(得分:0)
您可以轻松创建一个循环遍历表行的游标,并为每个表动态创建并执行drop语句。这样的事情可以解决问题:
DECLARE @i_Current_Drop_Statement NVARCHAR(MAX)
DECLARE Drop_Table_Statements CURSOR LOCAL FAST_FORWARD
FOR
SELECT N'DROP TABLE ' + QUOTENAME(SCHEMA_NAME(t.schema_id)) + '.' + QUOTENAME(t.name)
FROM sys.tables t --Or replace this with your table that contains the tables to drop
OPEN Drop_Table_Statements
FETCH NEXT FROM Drop_Table_Statements INTO @i_Current_Drop_Statement
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_executesql @i_Current_Drop_Statement
FETCH NEXT FROM Drop_Table_Statements INTO @i_Current_Drop_Statement
END
CLOSE Drop_Table_Statements
DEALLOCATE Drop_Table_Statements