我被迫在这个函数中放一个@noparameter varchar(1)= null? 如何创建一个函数来返回没有参数的表!
ALTER FUNCTION [dbo].[DropDownIndividuals](@noparameter varchar(1)=null) RETURNS @IndividualsList TABLE( Case_Number VARCHAR(11) ,LastName VARCHAR(100) ,FirstName VARCHAR(100) ,Midlename VARCHAR(100) ,FullName VARCHAR(100) ) AS BEGIN INSERT INTO @IndividualsList SELECT DISTINCT cast(Case_Number as varchar(10))as Case_Number ,[Lastname] ,[Firstname] ,[Middlename] ,rtrim([Lastname]+ ' '+ [Firstname]) as FullName FROM [MHMODSSQL1P].[ODS].[dbo].[Contact] WHERE [LastName] is not null and [FirstName] is not null UNION ALL SELECT null,null,null,null,null ORDER BY [LastName] RETURN END;
答案 0 :(得分:8)
FUNCTION [dbo].[DropDownIndividuals]()
您可以使用开括号和近括号来定义不带参数的函数,假设您使用的是SQL服务器。
答案 1 :(得分:2)
你应该能够做到这样的事情:
ALTER FUNCTION [dbo].[DropDownIndividuals]()
但由于表值函数本质上是一个参数化视图,你可能只是use a view而不是没有参数的TVF:
CREATE VIEW [dbo].[DropDownIndividuals]
AS
SELECT -- etc
答案 2 :(得分:1)
萨钦正确地给出了答案:
FUNCTION [dbo].[DropDownIndividuals]()
重要的是要注意,即使函数没有参数,你仍然应该用空括号调用函数,否则你会得到一个错误,如[多部分标识符“dbo.DropDownIndividuals”不能被发现]。
SELECT dbo.DropDownIndividuals()