我有一个包含一个表的数据库Queries。该表有两列,name和Query。在名为的列中,Query我正在记录一些SQL语句。
我试图从表中选择它们后执行这些语句。
这是我的代码,但是输出不正确,仅列出了语句,没有执行:
DECLARE @STR_QUERY NVARCHAR(max);
SET @STR_QUERY = 'SELECT Query FROM [AccHelper].[dbo].[Queries]'
EXECUTE SP_EXECUTESQL @STR_QUERY
Run Code Online (Sandbox Code Playgroud)
小智 9
这应该可以帮助您浏览该表中的所有脚本。对于您正在执行的操作,只会运行一个脚本,因此如果该表有 100 个脚本,则只会执行一个。希望这可以帮助
DECLARE @Queries TABLE (ID INT IDENTITY(1,1),SQLScript VARCHAR(MAX))
DECLARE @STR_QUERY VARCHAR(MAX);
DECLARE @StartLoop INT
DECLARE @EndLoop INT
INSERT INTO @Queries
SELECT Query
FROM [AccHelper].[dbo].[Queries]
SELECT @EndLoop = MAX(ID), @StartLoop = MIN(ID)
FROM @Queries
WHILE @StartLoop < = @EndLoop
BEGIN
SELECT @STR_QUERY = SQLScript
FROM @Queries
WHERE ID = @StartLoop
EXEC (@STR_QUERY)
SET @StartLoop = @StartLoop + 1
END
Run Code Online (Sandbox Code Playgroud)