我想在function
中创建一个SQL Server
。
在这个函数中,我需要定义一些variables
然后在SELECT中使用它。
SQL如下所示:
CREATE FUNCTION [dbo].[MyFussnction]
(
@path [nvarchar](10)
)
RETURNS TABLE
BEGIN
DECLARE @xx varchar(50);
SET @xx = 'Windows%';
RETURN
SELECT * FROM MyTable WHERE DataPath LIKE @path AND XX LIKE @xx;
END
但是,它无法创建,错误显示:
Msg 102, Level 15, State 31, Procedure MyFussnction, Line 12 [Batch Start Line 0]
Incorrect syntax near 'BEGIN'.
答案 0 :(得分:1)
您需要定义要返回的表的列,然后您可以使用declare,如下所示
CREATE FUNCTION [dbo].[MyFussnction] (
@path [nvarchar](10)
)
RETURNS @Mytable TABLE
(
ID int PRIMARY KEY NOT NULL
-- define other columns
)
AS
BEGIN
DECLARE @xx varchar(50);
SET @xx = 'Windows%';
Insert into @Mytable
SELECT Id FROM MyTable WHERE DataPath LIKE @path AND XX LIKE @xx;
RETURN;
END