Bru*_*uno 13 sql-server stored-procedures
我有一个sproc返回一行和一个文本列,我需要将此文本设置为一个变量,如:
declare @bla varchar(100)
select @bla = sp_Name 9999, 99989999, 'A', 'S', null
Run Code Online (Sandbox Code Playgroud)
但当然,这段代码不起作用......
谢谢!
Tim*_*m C 29
如果您无法更改存储过程,则另一种解决方案是定义临时表,并将结果插入其中
DECLARE @Output VARCHAR(100)
CREATE TABLE #tmpTable
(
OutputValue VARCHAR(100)
)
INSERT INTO #tmpTable (OutputValue)
EXEC dbo.sp_name 9999, 99989999, 'A', 'S', null
SELECT
@Output = OutputValue
FROM
#tmpTable
DROP TABLE #tmpTable
Run Code Online (Sandbox Code Playgroud)
Tim*_*m C 19
如果存储过程返回单个值,您可以将存储过程中的一个参数定义为OUTPUT变量,然后存储过程将设置参数的值
CREATE PROCEDURE dbo.sp_Name
@In INT,
@Out VARCHAR(100) OUTPUT
AS
BEGIN
SELECT @Out = 'Test'
END
GO
Run Code Online (Sandbox Code Playgroud)
然后,您将获得如下输出值
DECLARE @OUT VARCHAR(100)
EXEC sp_name 1, @Out OUTPUT
PRINT @Out
Run Code Online (Sandbox Code Playgroud)
DiG*_*iGi 15
DECLARE
@out INT
EXEC @out = sp_name 'param', 2, ...
Run Code Online (Sandbox Code Playgroud)
T-SQL"EXECUTE" 帮助中的更多信息(帮助来自MSSQL 2008,但这也适用于2000)
归档时间: |
|
查看次数: |
75981 次 |
最近记录: |