Я не уверен, мое название точно отражает мою проблему, но вот то, что у меня есть:Как я могу перебирать таблицы SQL?
DECLARE @ListOfTables TABLE(
RowID INT NOT NULL PRIMARY KEY IDENTITY(1,1)
, TableName VARCHAR(200)
)
DECLARE @RowsToProcess INT
DECLARE @CurrentRow INT
DECLARE @TableName VARCHAR(200)
INSERT INTO @ListOfTables (TableName)
VALUES ('Books')
INSERT INTO @ListOfTables (TableName)
VALUES ('Magazines')
INSERT INTO @ListOfTables (TableName)
VALUES ('Essays')
SET @RowsToProcess = @@ROWCOUNT
SET @CurrentRow = 0
Я хочу, чтобы затем цикл через эту таблицу и удалить.
WHILE @CurrentRow < @RowsToProcess
BEGIN
SET @CurrentRow = @CurrentRow+1
SELECT @TableName = TableName
FROM @ListOfTables
WHERE RowID = @CurrentRow
DELETE FROM @TableName
END
На самом деле, мое удаление не просто удаляет таблицу - у нее есть определенные критерии. Я упростил его для демонстрационных целей.
Я получаю ошибку здесь: Must declare the variable '@TableName'.
Я переместил его в петлю WHILE, и я получаю ту же ошибку.
Что я могу сделать здесь? Можно ли делать то, что я пытаюсь сделать?
Ahh! Только то, что мне было нужно. Спасибо. – Rail24
Просто будьте осторожны, когда вы получаете данные для @TableName. Вы можете открыть себе SQL-инъекцию. – SQLburn