CREATE TABLE test
(
id INT,
name VARCHAR(10)
)
INSERT INTO test VALUES(1,'safsdf');
INSERT INTO test VALUES(2,'aaaaa');
INSERT INTO test VALUES(3,'bbbbb');
一.存储过程返回单个结果集
存储过程1如下所示:
IF OBJECT_ID ('dbo.pTestProc1') IS NOT NULL
DROP PROCEDURE dbo.pTestProc1
GO
CREATE PROCEDURE pTestProc1
(
@id INT,
@name VARCHAR(20) OUTPUT
)
AS
BEGIN
SELECT @name = name FROM test WHERE id = @id
END
存储过程2如下所示:
IF OBJECT_ID ('dbo.pTestProc2') IS NOT NULL
DROP PROCEDURE dbo.pTestProc2
GO
CREATE PROCEDURE pTestProc2
AS
BEGIN
DECLARE @sql VARCHAR(100)
SET @sql = 'SELECT id, name FROM test '
EXEC(@sql)
END
IF OBJECT_ID ('dbo.pTestProc3') IS NOT NULL
DROP PROCEDURE dbo.pTestProc3
GO
CREATE PROCEDURE pTestProc3
(
@id INT
)
AS
BEGIN
SELECT id, name FROM test WHERE id = @id
END
调用代码如下:
IF OBJECT_ID ('dbo.pTestProc4') IS NOT NULL
DROP PROCEDURE dbo.pTestProc4
GO
CREATE PROCEDURE pTestProc4
(
@id INT,
@name VARCHAR(20) OUTPUT
)
AS
BEGIN
SELECT @name = name FROM test WHERE id = @id
END
调用代码如下: