如何在SQL Server中传递参数到我的查询中但不执行它

问题描述 投票:0回答:1

我想把日期参数传递给我的查询,它存储在我的配置表中,并把更新的查询插入到另一列中。我也有一个queryname列,我用它来标识我的查询,这些查询是oracle查询,长度很大。所以这就是为什么我不想让它们被执行,而只想把参数传递给它们,然后把更新的查询存储到SQL Server的另一列中。另外,我将在sis中执行这个存储过程,并在运行时给出查询名。

所以目前我的代码是:-

Create spUpdateQuery
    @queryname varchar(500)
As 
Begin
    Declare @date1 int
    Declare @date2 int
    Declare @oraclequery nvarchar(max)

    Select @date1 = firstdate, @date2 = lastdate, @oraclequery = query 
    from config_table 
    where queryname = @queryname 

    Set @updatedquery = (@oraclequery, @date1, @date2)
End

我怎么做?

我从我的配置表中也得到了日期值。请帮助我

祝贺

sql sql-server
1个回答
0
投票

如果是我,我会把它们分开,然后在运行时传递参数。

但是,如果你想这样做,你可以像对待其他的nvarchar一样对待@updatedquery和@oraclequery。

SELECT @updatedquery = REPLACE(@oraclequery, '@date1', @date1)
SELECT @updatedquery = REPLACE(@oraclequery, '@date2', @date2)

确保你在@oraclequery中需要引号的地方有引号,而且你可能想把@date1和@date1用convert包起来,以控制最终字符串的格式。

© www.soinside.com 2019 - 2024. All rights reserved.