私はdbテーブルの束を持っています。私のスクリプトは次のとおりです....しかし、私は私の試行を実行すると無限ループを作成しました..1以外のすべてのテーブルを削除する方法
どのように私はこれを行うことができますか?
/* Drop all tables */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects
WHERE [type] = 'U' AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
IF @name != 'tableNotToBeDropped'
BEGIN
SELECT @SQL = 'DROP TABLE [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Table: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects
WHERE [type] = 'U' AND category = 0 AND [name] > @name
ORDER BY [name])
END
GO
。 –
彼はループをしようとしていました。私は1つである必要はないと知っていますが、一部の人はxml systaxの方が好きではありません。 –
ループを使用せずに他の方法で行うこともできます。ほとんどの人はループなしでこのようなことをする方法を知らず、いつも新しいテクニックを学ぶことに興奮しています。 –