我想使用动态SQL中声明的动态变量

我想使用动态SQL中声明的动态变量,sql,sql-server,Sql,Sql Server,我希望输出为ms1 declare @sql as nvarchar(500)='' set @sql=' declare @N4 as int = 1 declare @ms as nvarchar(100) = concat(''ms'', convert(nvarchar(10), @N4)) select @ms ' exec @sql 将@SQL声明为NVARCHAR(500)=” SET@sql='1!' while(@i使用while语句和

我希望输出为
ms1

declare @sql as nvarchar(500)=''    
set @sql='
    declare @N4 as int = 1
    declare @ms as nvarchar(100) = concat(''ms'', convert(nvarchar(10), @N4))
    select @ms
    '
exec @sql
将@SQL声明为NVARCHAR(500)=”
SET@sql='1!'
while(@i
使用while语句和字符串连接来获得结果:
声明@StartValue INT=1
声明@EndValue INT=10
声明@Query VARCHAR(500)=”
而@StartValue<@EndValue
开始
设置@Query=@Query+'sms_u3;'+CAST(@StartValue作为VARCHAR)+','
设置@StartValue=@StartValue+1
结束
选择查询
使用While语句和字符串连接来获得结果:
声明@StartValue INT=1
声明@EndValue INT=10
声明@Query VARCHAR(500)=”
而@StartValue<@EndValue
开始
设置@Query=@Query+'sms_u3;'+CAST(@StartValue作为VARCHAR)+','
设置@StartValue=@StartValue+1
结束
选择查询

使用支持输出参数的sp_executesql

Use While statement and string concatenation to get your result :

DECLARE @StartValue INT = 1
DECLARE @EndValue INT = 10
DECLARE @Query VARCHAR(500) = ''

WHILE @StartValue < @EndValue
BEGIN

 SET @Query = @Query + 'sms_' + CAST(@StartValue AS VARCHAR) + ','
 SET @StartValue = @StartValue + 1

END
SELECT Query

使用支持输出参数的sp_executesql

Use While statement and string concatenation to get your result :

DECLARE @StartValue INT = 1
DECLARE @EndValue INT = 10
DECLARE @Query VARCHAR(500) = ''

WHILE @StartValue < @EndValue
BEGIN

 SET @Query = @Query + 'sms_' + CAST(@StartValue AS VARCHAR) + ','
 SET @StartValue = @StartValue + 1

END
SELECT Query

是的,您可以使用,为此您需要像这样使用
sp\u executesql
-

DECLARE @MS VARCHAR(50)
exec sp_executesql N'declare @N4 as int = 1;
SELECT @MS= concat(''ms'', convert(nvarchar(10), @N4))', 
N'@MS VARCHAR(50) output', @MS output;

SELECT @MS

是的,您可以使用,为此您需要像这样使用
sp\u executesql
-

DECLARE @MS VARCHAR(50)
exec sp_executesql N'declare @N4 as int = 1;
SELECT @MS= concat(''ms'', convert(nvarchar(10), @N4))', 
N'@MS VARCHAR(50) output', @MS output;

SELECT @MS

您使用的是哪种dbms?(该代码是特定于产品的。)Sql Server 2014Post您现在的预期输出应该是ms1i。我必须在动态Sql中声明变量,仅限您使用的dbms?(该代码是特定于产品的。)Sql Server 2014 Post您现在的预期输出应为MS1我必须仅在动态Sql中声明变量如何定义开始值和结束值..?您知道我是否需要使用动态变量中的变量。正如我的问题中所述,您如何定义开始值和结束值..?您知道我是否需要使用动态变量中的变量。就像我的问题一样谢谢你的帮助谢谢你的帮助