我只是想创建一个返回select语句的函数,但它会给出错误:
带有返回值的RETURN语句不能在此上下文中使用。
这是我的代码:
CREATE FUNCTION [dbo].[Sample] (@SampleValue int)
RETURNS TABLE
AS
BEGIN
RETURN(
SELECT * FROM View_sls
)
请让我知道解决方案
答案 0 :(得分:10)
两件事:
然后您可以调用RETURN;
将该表的数据返回给调用者。
所以你需要这样的东西:
CREATE FUNCTION [dbo].[Sample] (@SampleValue int)
RETURNS @returnTable TABLE
(ContactID int PRIMARY KEY NOT NULL,
FirstName nvarchar(50) NULL,
LastName nvarchar(50) NULL,
JobTitle nvarchar(50) NULL,
ContactType nvarchar(50) NULL)
AS
BEGIN
INSERT INTO @returnTable
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.View_sls
RETURN;
END
答案 1 :(得分:6)
语法错误,就是这样。当您具有“内联表值函数”
时,您不需要BEGIN
请参阅CREATE FUNCTION和示例B
CREATE FUNCTION [dbo].[Sample] (@SampleValue int)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM View_sls
);
GO
答案 2 :(得分:3)
您需要描述返回的表格,填充它,然后RETURN
:
CREATE FUNCTION [dbo].[Sample] (@SampleValue int)
RETURNS @RESULTS TABLE
(
ID int, <other fields>
)
AS BEGIN
INSERT @T
<select ...>
RETURN
END