【发布时间】:2021-12-12 18:46:01
【问题描述】:
SET @Result = '{ "host_name": "' + @hostname + '", "status": 15 }'
您能否向我解释一下我们使用 Result 的值得到了什么?如果我们假设 hostname = "machine1"。
为了测试这一点,我创建了一个表和一个存储过程并打印 Result 的值:
CREATE TABLE utilisateur
(
nom VARCHAR(100),
prenom VARCHAR(100),
age VARCHAR(5),
)
INSERT INTO utilisateur (prenom, nom, age)
VALUES
('Rébecca', 'Armand', 24)
go
CREATE PROCEDURE [sp_DB]
@hostname nvarchar(50),
@Result nvarchar(2000) OUTPUT
AS
select age as a from utilisateur where nom = 'Armand'
SET @hostname = 'machine1'
SET @Result = '{ "host_name": "' + @hostname + '", "a": 15 }'
print @Result
EXEC [sp_DB]@hostname ='machine1',@Result = 'test';
但是执行并没有显示Result变量的内容。
PS : 我使用 sqlfiddle.com/ 来执行代码
【问题讨论】:
-
您打印的结果,您希望选择它作为来自 SP 的结果集返回
-
你能展示实际执行存储过程的代码吗?请注意,像 sqlfiddle 和 dbfiddle 这样的许多 GUI 并不总是显示
PRINT消息,因此请考虑一下您实际上想要做什么。顺便说一句working fine for me. -
你能把链接添加到你的 sqlfiddle 吗?
-
代码已更正我添加了 EXEC [sp_DB]
-
这在 SSMS 中运行良好;
PRINT显示在消息窗格中。如前所述,不要依赖 Fiddles 之类的东西来实现真实的 IDE 行为;它们不是 IDE。如果您想正确测试您的代码,请在本地安装 SQL Server 并获取 ADS 或 SSMS。
标签: sql sql-server concatenation