命名存储的proc参数和连接

Mic*_*eyn 1 t-sql sql-server-2008 sql-server-2008-r2 sql-server-2012

可能重复:
在TSQL中转换整数并连接到varchar

如何使用具有更复杂值的命名参数调用存储过程.这是一个有点炮制的例子:

EXEC MyStoredProc @Param1='My name is: '+@Name
Run Code Online (Sandbox Code Playgroud)

要么:

EXEC MyStoredProc @Param1=CONCAT('My name is: ',@Name)
Run Code Online (Sandbox Code Playgroud)

尝试使用变量@Name连接文字字符串'My name is:'时出错.圆括号没有任何帮助.这是T-SQL的限制(即,当使用命名参数时,等号后的表达式必须是单个文字或变量)?

谢谢

SQL*_*ace 5

单程

declare @Var1 varchar(50)
select @Var1 = 'My name is: '+@Name

EXEC MyStoredProc @Param1=@Var1
Run Code Online (Sandbox Code Playgroud)

功能也是如此

你不能这样做

EXEC MyStoredProc @Param1=getdate()
Run Code Online (Sandbox Code Playgroud)

你需要做的

declare @Var1 datetime
select @Var1 = getdate()

EXEC MyStoredProc @Param1=@Var1
Run Code Online (Sandbox Code Playgroud)