我们想在sql server 2008上从tsql调用一些python.
python脚本完全开发并且运行良好.我们无法从客户端应用程序触发任何内容,因为它是封闭源代码,无法修改.
因此,我们可以完全访问SQL Server(2005和2008),并且可以看到"触发器"记录被插入...并且需要在发生这种情况时触发我们的python代码.
我们不想使用xp_cmdshell来启动老式的python脚本,而是尽可能地将其作为"sql native".(xp_cmdshell可以工作,但在几个级别上很吓人.)
这样做的路径是什么?
[编辑]根据Paul White的评论,IronPython(以及依赖于动态生成的代码的任何其他内容)不能在SQLCLR对象中使用.
这使得以下声明不正确.我会留在这里为未来的访客.
为了使用Python编写SQL CLR对象,您需要使用IronPython,并手动创建.py文件,其中包含.Net运行时所需的正确指令,以定位所需的.Net SQL CLR库.我不知道你需要在Python中使用的精确指令.
http://IronPython.net包含可用于此目的的.Net版本的Python.
说了这么多,Visual Studio 2012适用于使用C#或VB.Net来创建SQL Server CLR程序集.为了以一种好的,自动化的方式这样做,您需要创建一个"SQL Server数据库"项目,然后根据需要将解决方案的默认语言更改为C#或VB.Net.然后单击"项目 - >添加新项"并选择"SQL CLR触发器".这样可以自动设置函数声明等,以便"正常工作"SQL Server.