繁体   English   中英

SQL Server存储过程和C#

[英]SQL Server stored procedure and C#

我听说可以使用C#编写存储过程,但是我想知道使用C#编写存储过程还有其他好处。 什么时候应该使用c#编写存储过程。 请讨论。 谢谢

这里的这篇文章很好地总结了一下:

在CLR和T-SQL存储过程之间进行选择:一个简单的基准

基本上,在进行面向集合的操作时,请坚持使用T-SQL。

当执行更多的计算密集型操作(如字符串和日期操作,外部调用等)时,请使用C#。

我将CLR存储过程看作是SQL Server 7/2000中“扩展存储过程”的替代品,而不是直接T-SQL存储过程的潜在替代品。

检查有关此的更多信息: http : //searchsqlserver.techtarget.com/tutorial/CLR-stored-procedures

使用Microsoft SQL Server中托管的CLR(称为CLR集成),您可以在托管代码中编写存储过程,触发器,用户定义的函数,用户定义的类型和用户定义的聚合。 由于托管代码在执行之前会先编译为本机代码,因此您可以在某些情况下显着提高性能。

CLR集成的优势

Transact-SQL是专为直接在数据库中进行数据访问和操作而设计的。 尽管Transact-SQL在数据访问和管理方面很出色,但它不是一种成熟的编程语言。 例如,Transact-SQL不支持数组,集合,for-each循环,移位或类。 尽管其中一些结构可以在Transact-SQL中进行模拟,但托管代码已集成了对这些结构的支持。 根据场景的不同,这些功能可能会提供令人信服的理由,以在托管代码中实现某些数据库功能。 Microsoft Visual Basic .NET和Microsoft Visual C#提供了面向对象的功能,例如封装,继承和多态性。 现在可以将相关代码轻松地组织为类和名称空间。 当您使用大量服务器代码时,这使您可以更轻松地组织和维护代码。 托管代码比Transact-SQL更适合用于计算和复杂的执行逻辑,并且对许多复杂的任务(包括字符串处理和正则表达式)提供广泛的支持。 使用.NET Framework库中的功能,您可以访问数千个预构建的类和例程。 可以从任何存储过程,触发器或用户定义的函数轻松访问它们。 基本类库(BCL)包括提供字符串处理,高级数学运算,文件访问,加密等功能的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM