我得到了 SQL Server 2012 中新执行语句的片段。在研究它之后我有些困惑。请看一下
EXEC sproc_GETSTUDENT
WITH RESULT SETS
(
(
STUDENTROLLNO INT,
NAMEOFSTUDENT VARCHAR(50)
)
);
这是做什么的?
它是否执行存储过程并将数据填充到结果表中?
由于使用了with关键字,结果是临时表或CTE。我们知道我们在 CTE 时使用了 with 关键字。所以请解释一下当上面的片段运行时会发生什么。谢谢
最佳答案
它记录在EXECUTE (Transact-SQL)中用于描述结果集。
在您的情况下,执行该语句时您将获得两列。一个名为 STUDENTROLLNO
的 int
列和一个名为 NAMEOFSTUDENT
的 varchar(50)
列。
使用此存储过程:
CREATE PROCEDURE sproc_GETSTUDENT AS
SELECT 1 AS C1, 'Pelle' AS X1
你会得到
C1 X1
----------- -----
1 Pelle
如果您使用EXEC sproc_GETSTUDENT
执行该过程
但是如果你这样做
EXEC sproc_GETSTUDENT
WITH RESULT SETS
(
(
STUDENTROLLNO INT,
NAMEOFSTUDENT VARCHAR(50)
)
);
你会得到这样的结果集。
STUDENTROLLNO NAMEOFSTUDENT
------------- --------------------------------------------------
1 Pelle
关于sql-server-2012 - 此执行语句在 SQL Server 2012 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20682059/