如何从数据库中获取SQL CLR函数的定义

时间:2017-07-13 14:23:12

标签: c# .net sql-server sqlclr

我为SQL CLR项目提供的代码包含一个.net implementation is invalid的函数。但是我能够run a query确认服务器上有一个带有无效名称的函数。

graph_it <- function (col_name) {
   graph_name <- paste(col_name,'.png', sep='')

ggplot(data = CPI, aes(y = col_name, x = DATE )) + geom_line() + 
theme_bw() +
theme(panel.border = element_blank(),
      panel.grid.major = element_blank(), 
      panel.grid.minor = element_blank(),
      panel.background = element_blank()) +
ggtitle("YOY") + 
scale_y_continuous(labels = scales::percent)

ggsave(graph_name, width = 5, height = 5)
}

这足以确认已部署的版本是标量函数而不是可疑的表格。

我有没有办法从数据库中加载的版本中获取输入/输出参数,以确保正确的版本是我在上一个问题中建议的而不是其他内容?更一般地说,我希望能够为数据库中的所有其他CLR函数获得相同的结果,以查看它们是否与我给出的代码不匹配。

1 个答案:

答案 0 :(得分:1)

有几种不同的SQLCLR对象类型,因此需要一些查询。获取定义的最快捷,最简单的方法,特别是对于一次性操作,是通过SQL Server Management Studio(SSMS)编写对象的脚本。您应该能够在“对象资源管理器详细信息”中选择所有特定类型,并将它们一起编写为脚本。

或者,要一次性完成所有类型的所有SQLCLR对象,请转到常规“生成脚本”:

  1. 在对象资源管理器中右键单击数据库
  2. 转到“任务&gt;”子菜单
  3. 选择“生成脚本...”
  4. 选择“选择特定数据库对象”
  5. 深入查看各种对象类型 - 存储过程,用户定义的函数,用户定义的类型和用户定义的聚合 - 并检查要编写脚本的那些
  6. 点击“下一步&gt;”
  7. 选择您首选的保存/查看方法
  8. 点击“下一步&gt;”
  9. 点击“下一步&gt;” (再次,审查后)
  10. 点击“完成”
  11. 对于用户定义聚合(UDA)和标量用户定义函数(UDF),您可以使用以下查询(请记住,parameter_id的{​​{1}}是返回类型):

    0