У меня есть группа 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
Там нет необходимости в каких-либо зацикливание на что-то вроде этого. –
Он пытался сделать петлю. Я знаю, что им не обязательно быть одним, но некоторым людям не нравится систека xml. –
Вы можете сделать это другими способами, не используя цикл. Большинство людей не знают, как делать подобные вещи без цикла, и когда их показывают, как правило, очень рады узнать новую технику. –