创建sql clr 存储过程和函数时,如果你需要访问数据库的话,那就需要这个连接字符串,这个指示数据库在上下文环境中,打开连接,对数据库进行操作。也就是在开启这种连接的时候,代码只能运行在sql server 进程中!比如以下代码:
{
[SqlFunction(DataAccess = DataAccessKind.Read)]
public static SqlMoney SumLineTotal(int salesOrderID)
{
using (SqlConnection conn =
new SqlConnection("context connection=true"))
{
conn.Open();
SqlCommand cmd = new SqlCommand(
"SELECT SUM(LineTotal) " +
"FROM Sales.SalesOrderDetail " +
"WHERE SalesOrderID=" + salesOrderID, conn);
return (decimal)cmd.ExecuteScalar();
}
}
}
首先在函数中,你其实可以访问其他外部资源,甚至访问网络,访问web service,并调用其他类库,来协同实现某些功能,最后返回给存储过程一个单值。
第二,一个很重要的原因就是他非常少的耗费资源,那么它是如何减少资源的浪费的呢?看看这张图:
图中的示例表明2种不同的传输通道,左边的表示连接是由sql server clr 内部发起的连接,客户端和数据库服务器端都是一个,那就是sql server,他们使用的是 In-process Interface,管道直接从客户端连接到服务器端。他能够直接使用传输层协议和网络层协议发送命令接收结果,并且最重要的一点就是他不必经过验证!
我们再看看一般的ado.net客户端和服务器端的连接的管道。连接从客户端应用服务器端发起 ,然后经过 TDS-SQL Server protocol 协议,把命令传送到传输层(使用TCP连接,或者命名管道等),然后接通数据服务器端,验证,数据服务器监听端口并转换流给应用层 TDS-SQL Server protocol,最后数据库引擎得到数据。这个可是一个非常复杂的过程,就算中间有连接池,但是也是非常耗费资源的。
所以,如果项目中有数据库的连接瓶颈,不妨试一试clr assembly哦!
另外注意的是,使用context connection 需要使用using 打开,释放。不能像ado.net一般数据连接那样随意。
相关推荐
#### 一、SQL Server 2005与CLR集成技术概览 - **CLR(Common Language Runtime)集成**:CLR是.NET Framework的核心组件之一,它为.NET程序提供了一个运行时环境,包括内存管理、类型安全以及代码执行等服务。SQL ...
在SQL Server中,CLR集成允许开发者使用.NET Framework的语言(如C#或VB.NET)编写存储过程、触发器和其他数据库对象,从而提升性能和功能。 描述中提到的“部署查看Windows SQL服务器报表”是指在Windows环境下...
SQL Server 2005中的CLR(Common Language Runtime)集成是一项强大的特性,它允许开发人员使用.NET Framework(如C#、Visual Basic .NET或Visual C++)编写的代码与SQL Server进行深度集成。这一功能扩展了数据库的...
这篇博客文章“利用C#新建sql server 项目和CLR集成的使用”将指导我们如何创建一个SQL Server项目,并利用C#的CLR功能。 首先,我们需要了解什么是SQL Server中的CLR集成。CLR集成允许开发者使用.NET Framework的...
《Professional SQL Server 2005 CLR Programming》是关于利用.NET Framework的C#语言和CLR(Common Language Runtime)在SQL Server 2005中进行高级编程的一本专业书籍。这本书详细介绍了如何将.NET代码集成到SQL ...
SQL Server CLR集成是SQL Server 2005引入的一项特性,它将Microsoft的.NET Framework与数据库系统相结合。这使得开发人员可以直接在数据库内部执行.NET代码,提高了性能和安全性,并提供了更好的类型安全性和异常...
《SQL Server 2005的CLR集成》 SQL Server 2005引入了一项重大创新,即CLR(Common Language Runtime)集成,这使得数据库开发者可以利用.NET Framework的编程语言,如C#或Visual Basic .NET,来编写存储过程、函数...
CLR集成是SQL Server的一个特性,允许将.NET代码嵌入到数据库中,从而扩展了T-SQL的功能。 首先,我们要理解什么是CLR。CLR是Microsoft .NET Framework的一部分,它负责管理代码的执行,包括内存管理、类型安全、...
SQL Server 2005是微软推出的一款关系型数据库管理系统,它引入了对.NET Framework的集成,这在数据库领域被称为CLR(Common Language Runtime)集成。这个特性允许开发人员使用诸如C#、VB.NET等.NET语言编写存储...
此外,SQL Server 2005还引入了其他重要的新功能,如改进的查询优化器、新的T-SQL扩展、XML数据类型的支持、CLR集成等,这些都极大地提升了数据库的性能和开发人员的生产力。 总的来说,SQL Server 2005通过其向前...
《Microsoft System CLR Types for SQL Server 2012:官方工具与系统集成的关键组件》 在IT领域,尤其是数据库管理中,Microsoft SQL Server是广泛使用的数据库管理系统。Microsoft System CLR Types for SQL ...
【标题】"Microsoft System CLR Types for SQL Server 2012"是微软为SQL Server 2012提供的一组组件,主要用于支持.NET Framework与SQL Server之间的交互,特别是涉及到复杂数据类型如geometry、geography和image等...
在"提高你的数据库编程效率_Microsoft CLR Via Sql Server"这个主题中,我们重点关注的是如何利用Microsoft Common Language Runtime (CLR)集成在SQL Server中,从而实现更高效、更灵活的数据库编程。 CLR是.NET ...
Microsoft® System CLR Types for Microsoft® SQL Server® 2012 SQL Server System CLR Types 包包含用于在 SQL Server 2012 中实现 geometry、geography 和 hierarchy ID 类型的组件。此组件可单独从服务器安装...
在SQL Server 2005中,通过启用CLR集成,我们可以将托管代码(即运行在CLR上的代码)与T-SQL结合起来,创建混合型数据库解决方案。 2. CLR的启用与配置: 在SQL Server 2005中,要启用CLR集成,需要在服务器级别...
标题中的“microsoft system clr types for sql server 2012.7z”指的是微软为SQL Server 2012发布的Microsoft System CLR Types组件的压缩包。System CLR Types,全称为Common Language Runtime (CLR) Types,是...
SQL Server 2005 企业版支持高级编程接口,包括 T-SQL,SQL CLR,OLE DB,ODBC 等。 SQL Server 2005 标准版支持高级编程接口,包括 T-SQL,SQL CLR,OLE DB,ODBC 等。 SQL Server 2005 企业版和标准版是两种不同...