我有一个存储过程,比如“call_Me”,参数很少:
Declare @Greet varchar(100) = 'Hi ||User||'
Exec Call_Me 1,'something', @Greet --parameters: bit, string, string
在通话期间,我希望能够更换
||User||
有点别的东西。通常,在 select 语句中,我会这样做:
select 1, 'something', Replace(@Greet, '||User||', u.Username) from UserTable
效果很好,但是今天,我第一次尝试在 exec 语句中使用它,错误说它期望选择,我尝试以各种可能(和明智)的方式添加选择,但似乎没有解决。
如何在执行语句调用期间使用替换?
提前谢谢了!
最佳答案
在将其传递给 sproc 之前,您需要格式化 @Greet:
Declare @Greet varchar(100) = 'Hi ||User||'
SELECT @Greet = Replace(@Greet, '||User||', u.Username)
FROM UserTable u
WHERE Id = 1
Exec Call_Me 1,'something', @Greet --parameters: bit, string, string
关于sql - 如何在 sql server 2008 中的 exec 语句中使用替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4032747/