我有一个只有一个表Queries的数据库。该表有两列,nameQuery。在名为Query的列中,我正在记录一些SQL语句。

从表中选择它们后,我试图执行这些语句。

这是我的代码,但是输出不正确,仅列出了语句,没有执行:

DECLARE @STR_QUERY NVARCHAR(max);
SET @STR_QUERY = 'SELECT Query FROM [AccHelper].[dbo].[Queries]'

EXECUTE SP_EXECUTESQL @STR_QUERY

最佳答案

这应该可以帮助您遍历该表中的所有脚本。在执行操作时,将仅运行一个脚本,因此,如果表中包含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

关于sql-server - SQL-从表单元格执行查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43121146/

10-11 03:25