Я пытаюсь написать цикл WHILE
в SQL Server с переменной varchar
.
Это работает
DECLARE @counter INT = 18;
WHILE @counter >= 14
BEGIN
PRINT @counter;
SET @counter = @counter - 1
END
Но я действительно хочу это цикл while, которыйбудет проходить через каждый из этих архивов, проверять, есть ли в них какие-либо строки, и, если они пустые, продолжать, пока не будет найдена строка в одном или до указанного номера архива.Я пытался использовать курсор, но не могу понять это.Спасибо.
DatabaseArchive20
DatabaseArchive19
DatabaseArchive18
DatabaseArchive17
Это то, что я пробовал.
Вот пример, с которым я пытался работать.
DECLARE @counter INT = 18
DECLARE @sql VARCHAR (1000)
WHILE @counter >= 14
BEGIN
SET @counter = @counter - 1
SET @sql = 'SELECT * FROM [DatabaseArchive' + @counter + '].[dbo].[Feeds] WHERE AccNum = 123456'
PRINT @sql
END
Яполучение этой ошибки
Преобразование не удалось при преобразовании значения varchar 'SELECT * FROM [DatabaseArchive' в тип данных int