SQL - 从表格单元格执行查询

时间:2017-03-30 14:44:20

标签: sql-server tsql

我有一个包含一个表Queries的数据库。此表有两列nameQuery。在名为Query的列中,我正在录制一些SQL语句。

我正在尝试从表中选择这些语句后执行这些语句。

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

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

EXECUTE SP_EXECUTESQL @STR_QUERY

2 个答案:

答案 0 :(得分:3)

尝试以下:

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

EXECUTE SP_EXECUTESQL @STR_QUERY

答案 1 :(得分:3)

这应该可以帮助您浏览该表中的所有脚本。根据您的操作,只运行一个脚本,因此如果表有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