SQL Server 开发中的语言选择与数据库互操作性指南
1. SQL Server 中 CLR 的应用与思考
在 SQL Server 中引入公共语言运行时(CLR)带来了强大的功能、灵活性和更多设计选择。不过,数据库管理员(DBAs)担心 CLR 可能不必要且会被开发者滥用。尽管任何技术都有被滥用的可能,但我们不应轻易否定 SQLCLR,而应考虑在哪些场景下它能作为有效工具来改进数据库设计。
- CLR 适用场景示例
- 标量和表值函数 :用 .NET 语言编写的标量和表值函数,是改进设计的不错切入点。
- 替代扩展存储过程 :若需要在数据库服务器上运行特定功能,使用 SQLCLR 替代扩展存储过程是合理的。
- 用户定义类型(UDTs)和用户定义聚合 :这是扩展 SQL Server 的两种新方式。不过,实现 UDTs 前需谨慎考虑,因为它们存在维护和版本控制问题。用户定义聚合编写起来可能有一定难度,但如果数据库设计需要特殊聚合功能,无论是自行编写、下载还是购买相关实现,都可能有助于提升设计和性能。
2. T - SQL 与 .NET 的选择指南
2.1 选择 T - SQL 的准则
T - SQL 在 SQL Server 2005 中不仅不会被淘汰,还得到了增强。对于主要用于访问数据的例程,通常优先考虑使用 T - SQL。不过,若例程包含大量条