【问题标题】:stored procedure in SQL CLRSQL CLR 中的存储过程
【发布时间】:2011-03-17 08:51:49
【问题描述】:

如何在 SQLCLR 中使用 C# 编写存储过程?

目前我正在使用 SQL Server Management Studio,并使用 T-SQL 编写存储过程,例如 create proc sp_item as ....

【问题讨论】:

  • 对不起,我没有得到你。你可以再详细一点吗。据我了解,您可以参考 LINQ - msdn.microsoft.com/en-us/library/bb308959.aspx
  • 对我来说似乎是一个足够清楚的问题。 LINQ 本身很可能与此无关。

标签: c# sql-server stored-procedures sql-server-2005 sqlclr


【解决方案1】:

见:

基本上,有一些 Visual Studio 模板可让您开始使用 SQL CLR 项目。填空,编写实际代码,甚至可以直接从 Visual Studio 中将这些 CLR 程序集部署到 SQL Server。

请注意:我会避免在 SQL CLR 存储过程中进行基于集合的更新和插入以及类似的事情 - 为此,T-SQL 存储过程更好更快。

SQL-CLR 非常适合扩展 SQL Server,包括字符串操作、日期处理、调用能力等。网络服务或其他东西。我建议反对尝试用 C# SQL CLR 存储过程替换所有 T-SQL 存储过程只是因为你可以只是因为它很酷 -为正确的工作使用正确的工具!集合上的大规模操作最好留给 T-SQL。

【讨论】:

    【解决方案2】:

    除了 Marc 提供的链接,我还写了一个关于编写 SQLCLR 表值函数的简短教程(仅供参考,需要免费注册才能查看 SQL Server Central 上的文章):

    CLR Table-Valued Function Example with Full Streaming (STVF / TVF)

    我还写了一系列关于使用 SQLCLR 的文章:

    Stairway to SQLCLR


    此外,您不应在存储过程名称中使用sp_ 作为前缀。这是一种特殊语法,由于导致 SQL Server 首先检查master 中的存储过程,然后然后,如果没有找到,它将搜索当前数据库,从而降低性能。

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多