【问题标题】:Is there a system table or system view that lists all built-in functions in SQL Server?是否有列出 SQL Server 中所有内置函数的系统表或系统视图?
【发布时间】:2020-02-27 18:53:23
【问题描述】:

我正在构建一个应用程序,用户可以使用它在 SQL Server 数据库中创建自己的用户定义函数。我必须以某种方式验证用户选择的函数名称不等于内置函数的名称(例如 avg、concat、...),因为这会破坏应用程序。

有没有办法查询所有内置函数(不是 UDF)的名称,例如系统视图等?

【问题讨论】:

  • 这不会给你CONCATAVG、@SurajKumar 之类的东西。老实说,OP 描述的内容听起来像是XY Problem 和注射的噩梦。
  • @Larnu 现在撤回了接近投票。
  • 用户创建自己的函数....会出什么问题??老实说,这个想法太可怕了。
  • @Larnu 出于安全原因,我可以理解您的观点,并且我非常了解即将出现的问题,但这并不能真正帮助我找到答案。我知道 SQL Server Management Studio 可以在对象资源管理器中列出所有系统函数,所以必须有一些方法来查询它们

标签: sql-server tsql user-defined-functions


【解决方案1】:

我认为这是你命名函数的规则,只要你是开发者。这意味着您的函数将始终在数据库中具有您的前缀,如 mf_ 这可能意味着 myfunction_ 和您用户的函数名称。在您的代码中,始终将 mf_ 前缀放在用户的函数调用前面,检查它是否存在并使用它。

【讨论】:

  • 我希望找到一种绕过前缀的方法,但由于没有内置函数或类似功能的系统表,我想使用前缀是唯一可行的方法。
猜你喜欢
  • 2012-01-20
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
相关资源
最近更新 更多