通过存储过程将生成的SQL字符串存储到表中

时间:2016-03-23 16:38:21

标签: sql stored-procedures sql-server-2005

我有一个应用程序,用户填写一个表单,然后生成一个相当冗长的查询。作为使用统计程序的一部分,我跟踪并记录用户在数据库中的一个位置执行的所有操作。我有一个存储过程,将适当的值插入此数据库,但是我遇到的问题是插入发生的实际Query。

存储过程

    USE [Worktool]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Insert_Usage_Statistics]
    -- Add the parameters for the stored procedure here
    @Query_VC AS VARCHAR(MAX) = NULL

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    INSERT INTO Usage_Statistics_T
        (
            Query_VC

        ) 
        VALUES 
        (
            @Query_VC

        )
END

被调用的例子

    exec Worktool.dbo.Insert_Usage_Statistics  

@Query_VC = 'SELECT col1 FROM tbl1  INNER JOIN tbl2 ON tbl1.id = tbl2.id WHERE       tbl1.id IN ('1','2')'

我收到的错误是围绕IN('1','2')语法。

0 个答案:

没有答案