Nếu đây thực sự không phải là vấn đề tham số đầu ra mà là tập hợp kết quả, thì hãy đoán rằng SpWithOutputID
thực hiện một cái gì đó như thế này (trả về một SELECT
với một hàng và một cột):
CREATE PROCEDURE dbo.SpWithOutputID
AS
BEGIN
SET NOCOUNT ON;
SELECT ID = 4;
END
GO
Sau đó, Test1
có thể trông như thế này:
CREATE PROCEDURE dbo.Test1
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID INT;
CREATE TABLE #x(ID INT);
INSERT #x EXEC dbo.SpWithOutputID;
SELECT TOP (1) @ID = ID FROM #x;
DROP TABLE #x;
END
GO
Nhưng điều đó có thực sự lộn xộn với bạn không? Nó thực sự sẽ hoạt động theo cách này cho các giá trị đơn lẻ, vô hướng:
CREATE PROCEDURE dbo.SpWithOutputID
@ID INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @ID = 4;
END
GO
Giờ đây, việc sử dụng thông số đầu ra thực sự là đơn giản hơn nhiều:
CREATE PROCEDURE dbo.Test1
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID INT;
EXEC dbo.SpWithOutputID @ID = @ID OUTPUT;
SELECT @ID;
END
GO