我的sproc返回了两个查询。我希望能够为一件事选择其中一件,并在另一件询问中选择另一件。
sp_mysproc有两个select语句:
select * from Orders where customerid = @customerid
select * from Customer where customerid = @customerid
如何执行sp_mysproc以获取这两个查询中的任何一个?我需要添加到结尾'; 1'或'; 2'吗?
答案 0 :(得分:3)
你应该像Martin建议的那样使用两个独立的存储过程。
尝试使用一个函数/存储过程执行两个不同的操作只会让生活变得更加艰难。
但如果您真的想要,请不要,请查看传递参数以告知您想要的查询,并使用if语句选择适当的查询。
但严重的是,请将其分解为两个存储过程。我已经看到很多开发人员试图这样做,它最终会让他们的生活在以后更加复杂。
以下是使用if语句选择单个查询的快速而简单的示例......
CREATE PROCEDURE [dbo].[spMySproc]
(
@CustomerID INT,
@Table VARCHAR(10)
)
AS
BEGIN
IF @Table = 'Orders'
BEGIN
SELECT * FROM [Orders] WHERE [CustomerID]=@CustomerID
END
IF @Table = 'Customer'
BEGIN
SELECT * FROM [Customer] WHERE [CustomerID]=@CustomerID
END
END