使用动态 SQL 设置参数
Setting a parameter using dynamic SQL
我一直在尝试使用动态 SQL 设置参数,但是每次我这样做时它总是返回 NULL。下面我复制了我的代码的基本版本,任何人都可以建议我如何做我想做的事情。
DECLARE
@SQL_Prev_Values nvarchar(max),
@Value nchar(100),
@Prev_Values varchar(150) =' '
SET @Value = 'dave'
SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+''''
SELECT @SQL_Prev_Values
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out
SELECT @Prev_Values
SET @Prev_Values = @Prev_Values + 'dave'
SELECT @Prev_Values
我在网上看到过一些东西,但它们对我来说似乎没有意义。
任何帮助,将不胜感激。
提前致谢。
正如您从下面的屏幕截图中看到的那样,模板运行良好:
DECLARE @Prev_Values nchar;
DECLARE @SQL_Prev_Values NVARCHAR(MAX);
SET @SQL_Prev_Values = N'SET @Prev_Values = 1;'
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out
SELECT @Prev_Values;
试试这个:
DECLARE
@SQL_Prev_Values nvarchar(max),
@Value nchar(100),
@Prev_Values varchar(150) =' '
SET @Value = 'dave'
SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+''''
SELECT @SQL_Prev_Values
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values varchar(150) out',@Prev_Values out
SELECT @Prev_Values
输出参数的值与 sp_executesql
中设置的值不同。
我一直在尝试使用动态 SQL 设置参数,但是每次我这样做时它总是返回 NULL。下面我复制了我的代码的基本版本,任何人都可以建议我如何做我想做的事情。
DECLARE
@SQL_Prev_Values nvarchar(max),
@Value nchar(100),
@Prev_Values varchar(150) =' '
SET @Value = 'dave'
SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+''''
SELECT @SQL_Prev_Values
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out
SELECT @Prev_Values
SET @Prev_Values = @Prev_Values + 'dave'
SELECT @Prev_Values
我在网上看到过一些东西,但它们对我来说似乎没有意义。 任何帮助,将不胜感激。 提前致谢。
正如您从下面的屏幕截图中看到的那样,模板运行良好:
DECLARE @Prev_Values nchar;
DECLARE @SQL_Prev_Values NVARCHAR(MAX);
SET @SQL_Prev_Values = N'SET @Prev_Values = 1;'
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out
SELECT @Prev_Values;
试试这个:
DECLARE
@SQL_Prev_Values nvarchar(max),
@Value nchar(100),
@Prev_Values varchar(150) =' '
SET @Value = 'dave'
SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+''''
SELECT @SQL_Prev_Values
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values varchar(150) out',@Prev_Values out
SELECT @Prev_Values
输出参数的值与 sp_executesql
中设置的值不同。