Sub*_*dam 5 sql-server sql-server-2008-r2
我有一个 sp,结果是 3 套。现在的问题是我想将这 3 个结果集插入到 3 个临时表中。在这三个结果中,结构不同,列数也不同。
考虑到您必须创建一个过程来处理三个结果集,以下是解决方案。但正如 Aaron Bertrand 在评论中建议的那样,如果可能的话,尝试对三个不同的结果集使用三个不同的过程。
如果由于复杂的逻辑或架构限制而不接受三个不同的 SP,那么
下面是示例
CREATE PROCEDURE dbo.sampleProc @ReturnType INT
AS
BEGIN
-- Your logic here
IF @ReturnType = 1
BEGIN
-- Return first result set
END
IF @ReturnType = 2
BEGIN
-- Return second result set
END
IF @ReturnType = 3
BEGIN
-- Return third result set
END
END
Run Code Online (Sandbox Code Playgroud)
编辑:还有一点。在为我们提供 if 逻辑时,您必须非常精确。由于相同的过程需要调用三次,因此可能会对性能产生影响,具体取决于您尝试实现的逻辑。如果可能,请使用相同的 if 块来合并特定返回场景的所有逻辑,并将通用部分保留在头部。
归档时间: |
|
查看次数: |
5927 次 |
最近记录: |