是否有可能在t-sql中没有参数的函数?

hid*_*den 4 t-sql

我被迫在这个函数中放一个@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;

Sac*_*hag 8

FUNCTION [dbo].[DropDownIndividuals]()
Run Code Online (Sandbox Code Playgroud)

您可以使用open和close括号来定义没有参数的函数,假设您使用的是SQL Server.


Luk*_*keH 5

你应该能够用这样的东西来做到这一点:

ALTER FUNCTION [dbo].[DropDownIndividuals]()
Run Code Online (Sandbox Code Playgroud)

但由于表值函数本质上是一个参数化视图,因此您不妨只使用视图而不是不带参数的 TVF:

CREATE VIEW [dbo].[DropDownIndividuals]
AS
SELECT -- etc
Run Code Online (Sandbox Code Playgroud)