sql server 存储过程如何返回一个集合啊?

create procedure sp_add_table1 @table_result ______ as select * from table return @table_result
2024年11月17日 10:37
有2个网友回答
网友(1):

对于@table_result, @后是自定义参数,不是返回值。

存储过程执行完成后会自动返回集合的,因为你执行的是一条select语句,不用return。
存储过程没有return语句

网友(2):

你需要的功能,  是不是 一个  叫做   “表值函数”  的东西?

SQL Server 通过 RETURN TABLE 来实现。 

1> CREATE FUNCTION getHelloWorld()
2> RETURNS TABLE
3> AS
4> RETURN
5>   SELECT 'Hello' AS A, 'World' AS B;
6> GO
1> SELECT * FROM getHelloWorld();
2> go
A     B
----- -----
Hello World

(1 行受影响)



如果返回的结果, 不是简单的一个 SQL 语句的, 而是比较复杂的业务逻辑的

CREATE FUNCTION getTestTable()
RETURNS @result  TABLE(A int, B int, C int) 
AS
BEGIN
  INSERT INTO @result VALUES(1, 2, 3);
  INSERT INTO @result VALUES(4, 5, 6);
  INSERT INTO @result VALUES(7, 8, 9);
  RETURN;
END;



SELECT * FROM getTestTable();

A B C
1 2 3
4 5 6
7 8 9