命名存储的proc参数和连接

时间:2012-09-27 19:56:03

标签: sql-server-2008 tsql sql-server-2008-r2 sql-server-2012

  

可能重复:
  Cast integer and concatenate to varchar in TSQL

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

EXEC MyStoredProc @Param1='My name is: '+@Name

或者:

EXEC MyStoredProc @Param1=CONCAT('My name is: ',@Name)

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

由于

1 个答案:

答案 0 :(得分:5)

单程

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

EXEC MyStoredProc @Param1=@Var1

功能也是如此

你不能这样做

EXEC MyStoredProc @Param1=getdate()

你需要做

declare @Var1 datetime
select @Var1 = getdate()

EXEC MyStoredProc @Param1=@Var1