Sql server 如何在T-SQL中创建一个可以在许多数据库上使用的用户定义函数?

Sql server 如何在T-SQL中创建一个可以在许多数据库上使用的用户定义函数?,sql-server,tsql,Sql Server,Tsql,我处理的大多数流程都基于月末。我创建了一个用户定义的函数,用于计算上月的最后一个dat。如何创建该函数以便可以跨多个数据库使用 RETURNS date AS BEGIN DECLARE @LastDayLastMonth Date; set @LastDayLastMonth = convert(date,DATEADD(DAY,-day(getdate()),GETDATE())); RETURN @LastDayLastMonth; END 内联表值函数将比

我处理的大多数流程都基于月末。我创建了一个用户定义的函数,用于计算上月的最后一个dat。如何创建该函数以便可以跨多个数据库使用

RETURNS date
AS
BEGIN
    DECLARE @LastDayLastMonth Date;

    set @LastDayLastMonth =  convert(date,DATEADD(DAY,-day(getdate()),GETDATE()));

    RETURN @LastDayLastMonth;
END

内联表值函数将比标量函数性能更好

CREATE FUNCTION GetLastDayOfLastMonth()
RETURNS TABLE WITH SCHEMABINDING AS
    RETURN 
    SELECT CONVERT(DATE, DATEADD(DAY, -DAY(GETDATE()), GETDATE())) as LastDayLastMonth;

如果有适当的权限,只需使用函数:
server.database.schema.object
我猜您在同一个SQL server实例中执行所有操作。如果是这种情况,您可以排除“服务器”名称。我认为您需要使用CLR函数而不是UDF。不确定您是否需要在此处转到CLR,但内联表值函数将比标量函数性能更好。我不认为OP询问函数类型(UDF、CLR、标量等).您如何使用该函数并处理日期时间问题?