SQL用户定义的函数来打开文件

时间:2013-10-15 14:57:55

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

我想创建一个用户定义的函数/存储过程或另一个SQL机制,当传递文件名时,会将文件内容读入变量以供以后处理。该机制必须在交易中起作用。

我的计划是使用用户定义的函数,但是OPENROWSET函数不允许我将变量作为文件名传递,因此我需要在“sp_executesql”语句中执行它,并且函数变得不确定。< / p>

我可以使用任何变通方法绕过非确定性函数吗?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用SQL Server从开发人员提供的DLL调用的所谓“CLR函数”函数。查看有关http://technet.microsoft.com/en-us/library/ms189876.aspx

的详细信息

但请注意,处理来自服务器端的文件不是具有重大安全性问题的可扩展解决方案。

答案 1 :(得分:0)

CLR选项将为您提供您想要的内容(请参阅@ Dewfy的评论),但另一个选项是bulk insert,如果您的数据允许的话。它也不具有可扩展性,多个用户同时执行此操作的问题,但也许您的情况允许这个?