我有一个问题场景,如下所述。
DECLARE @WhereClause VARCHAR(MAX)
SET @WhereClause = 'Address = ''A'' AND AppId = @AppId'
--I have values like below:
SET @AppId = '123333'
SET @param = @AppId --This information I retrieve from database
现在我想将@whereClause中的@AppId替换为值123333.我只有@param变量的信息,我可以使用@param替换@AppId,因为我从动态数据库中获取@param变量
SET @WhereClause = REPLACE(@WhereClause,@ param,' ???')
我需要能够用@WhereClause中的值替换AppId的东西。我有@param变量,我可以用它来知道需要替换哪个变量。
答案 0 :(得分:1)
查看sp_executesql功能。这应该做你需要的:
Declare @sql varchar(max); set @sql = ' ... ';
set @sql = @sql + @WhereClause;
declare @Params nvarchar(max); set @Params = N'@ID nchar(5)';
EXECUTE sp_executesql @sql, @ParmDefinition, @ID = @Appid;