Sql server 创建在调用数据库上下文中执行的通用UDF

Sql server 创建在调用数据库上下文中执行的通用UDF,sql-server,tsql,Sql Server,Tsql,我知道您可以在master中创建一个存储过程,并使用“sp_MS_marksystemobject”,然后从任何数据库调用sp,它将在本地数据库上下文中运行。我试着用UDF做同样的事情,但这似乎不起作用 我尝试过创建函数的同义词,但这会导致函数在主数据库中执行 我已经对函数执行了'sp_MS_marksystemobject',但是当我使用[master].[dbo].[myfunction]调用它时,它会在master db中执行 仅使用[dbo].[myfunction]调用函数,它找不到

我知道您可以在master中创建一个存储过程,并使用“sp_MS_marksystemobject”,然后从任何数据库调用sp,它将在本地数据库上下文中运行。我试着用UDF做同样的事情,但这似乎不起作用

  • 我尝试过创建函数的同义词,但这会导致函数在主数据库中执行
  • 我已经对函数执行了'sp_MS_marksystemobject',但是当我使用[master].[dbo].[myfunction]调用它时,它会在master db中执行
  • 仅使用[dbo].[myfunction]调用函数,它找不到UDF

那么,如何创建一个可以从任何数据库调用并在调用数据库的本地上下文中运行的通用函数呢?

请检查:该功能仅适用于存储过程。创建clr udf,它接受连接字符串作为参数之一SMS建议您避免使用SP_uuu前缀:在命名过程时避免使用SP_uuu前缀。SQL Server使用此前缀指定系统过程。如果存在同名的系统过程,则使用前缀可能会导致应用程序代码中断。