【发布时间】:2013-09-06 21:53:46
【问题描述】:
根据我在 Internet 上找到的示例,我编写了以下 C# 代码,用于在 MS SQL Server 2008 中实现 CLR 存储过程:
public class Class1
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void CountStringLength(string inputString)
{
SqlContext.Pipe.Send(inputString.Length.ToString());
}
}
此过程以字符串为参数,输出字符串中的字符数。
我一直在编写一些从 SQL 检索数据的代码;检索数据的方式没有什么特别之处:它与 SQL 服务器建立连接,选择数据,然后关闭连接。我想让这段代码在我的 SQL 服务器上的存储过程或触发器中运行。
我想我可以使代码运行与现有 SQL 代码完全相同:连接到 SQL 服务器,选择数据,然后关闭连接。但是,一旦代码在 SQL 服务器本身上运行,这就没有意义了!为什么我希望在 SQL 服务器上运行的代码使服务器连接到自身?!?!
对于我正在尝试做的事情,是否有最佳做法?我可以使用用于执行存储过程的相同连接在我的代码中选择行吗?
【问题讨论】:
标签: sql sql-server sqlclr clrstoredprocedure