sql - 如何在 sql server 2008 中的 exec 语句中使用替换

标签 sql sql-server-2008 stored-procedures replace exec

我有一个存储过程,比如“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/

相关文章:

Android 自定义 ListView 与 ArrayAdapter<String> 可能吗?

sql-server - SQL Server 2008 R2 上的插入和选择性能

sql - 导入时自动调整数据类型

php - phpmyadmin 中的存储过程

sql - 将 DataTable 传递给存储过程。有没有更好的办法?

MySQL find_in_set() 函数跳过集合中的一项

sql - 数据库会读但不会写

MySQL 查询耗时较长。我尝试了多种查询变体,但似乎没有任何影响速度

c# - 移植 "SQL"导出到 T-SQL

sql - 如何使用C#为sql中的表选择object_definition(object_id)?