作者:mobiledu2502857827 | 来源:互联网 | 2014-04-30 14:32
本文将说明如何在SQLServer2005中以尽可能最简略的方法创立基于.NET的CLR子例程。本文重要针对在服务器端应用SQLServer2005的.NET开发者。一、创立SQLServer2005数据库这一节重要讨论创立
本文将说明如何在SQL Server 2005中以尽可能最简略的方法创立基于.NET的CLR子例程。本文重要针对在服务器端应用SQL Server 2005的.NET开发者。
一、创立SQL Server 2005数据库
这一节重要讨论创立一个将用于本文中的数据库和表格。详见下列步骤:
· 履行"Start->Programs->Microsoft SQL Server 2005->SQL Server Management Studio",并应用必要的证书连接到你的SQL Server 2005实例。
· 一旦建立连接,应用"Object Explorer"打开SQL Server 2005实例,然后右击"databases"并选择"New Database"(图1)。
图1
然后,呈现一个"New Database"对话框。输进数据库名"Sample"并点击"OK"以便在同一个实例内创立新的数据库。
· 一旦创立该数据库,你必定能够在"Object explorer"中看到雷同的成果。
· 应用"Object explorer"打开"Sample"数据库,右击"tables"并选择"new table"(图2)。
图2
· 创立如下图3所示的表格结构,并用"emp"保留表格。
图3
· 一旦你创立了表格"emp",打开它(图4)并应用下列数据进行填充(图5)。
图4
图5
二、创立SQL Server 2005数据库.NET CLR存储过程
一旦你创立完数据库和表格,接下来让我们应用下列步骤在SQL Server 2005数据库中创立一个.NET CLR存储过程:
· 转到"Start -> Programs -> Microsoft Visual Studio 2005 -> Microsoft Visual Studio 2005"。
· 在"New Project"对话框内,从"Visual Basic"树的"Project Type"下选择"database"并选择"SQL Server Project"作为模板,输进名字"SampleAllInOne"。至此,该对话框应当看起来如下图6所示。
图6
· 一旦你点击"OK",将呈现一个"New Database Reference"对话框。输进你自己的实例名,并选择数据库"Sample"(在上一节创立的),并且测试连接(图7)。
图7
· 一旦测试成功,点击"OK"创立工程。
· 然后系统呈现一个对话框,它询问你是否启动CLR调试功效。请点击"Yes"(图8)。
图8
· 应用"Solution explorer",右击"SampleAllInOne"工程,并点击"Add->Stored Procedure"(以创立一个新的存储过程)(图9)。
图9
· 之后,呈现"Add New Item"对话框。在该对话框内,选择"Stored Procedure"作为模板并输进名字"IncSalaries",最后点击"Add"(图10)。
图10
三、.NET CLR存储过程编码
一旦创立"IncSalaries.VB",以下列方法修正你的代码,如下所示:
以下为引用的内容: Imports System Imports System.Data Imports System.Data.SqlClient Imports System.Data.SqlTypes Imports Microsoft.SqlServer.Server Partial Public Class StoredProcedures _ Public Shared Sub IncSalaries(ByVal IncVal As SqlDouble) '在此添加你的代码 Using cn As New SqlConnection("context cOnnection=true") Dim cmd As New SqlCommand("update sample.dbo.emp set sal = sal " & IncVal.ToString, cn) cmd.Connection.Open() cmd.ExecuteNonQuery() End Using End Sub End Class
上面是一个应用Visual Basic.NET 2005编写简略的基于CLR的存储过程,你可以把它宣布到SQL Server 2005中。该存储过程名为"IncSalaries",它只接收一个参数-"IncVal"。上面的存储过程简略地应用参数中供给的值来提高表格"emp"中每一位雇员的工资值。
四、.NET CLR存储过程测试
为了测试上面的存储过程,请遵守下列步骤:
· 应用"Solution Explorer"在"test scripts"中打开"test.sql"(图11)。
图11
· 转到最后一行,并如下修正代码:
--为运行你的工程,请编纂你的工程的Test.sql文件。
--这个文件位于Solution Explorer的"Test Scripts"文件夹下
exec IncSalaries 50
· 转到"Start->Programs->Microsoft SQL Server 2005->Configuration Tools->SQL Server Su***ce Area Configuration"。
· 在窗口内,点击"Su***ce Area Configuration for Features"(图12)。
图12
· 启动CLR集成,如下所示(图13)。
图13
· 按F5履行全部计划。假如它的履行中呈现任何错误,一切都会被显示于输出窗口中。
· 假如存储过程成功履行,你应当能够看到所有的工资数增加了50。
五、SQL Server 2005数据库中的.NET CLR用户定义函数
现在,我们要在我们现有的计划上添加一个存储函数。
· 应用"Solution explorer",右击"SampleAllInOne"工程并转到"Add->User-defined Function"(以创立一个新的存储函数)(图14)。
图14
· 之后,呈现"Add New Item"对话框。在对话框内,选择"User defined function"作为模板,输进名字"getNetSalary",最后点击"Add"(图15)。
图15
一旦创立"getNetSalary.VB",接下来按下列方法修正你的代码:
以下为引用的内容: Imports System Imports System.Data Imports System.Data.SqlClient
推荐阅读
随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ...
[详细]
蜡笔小新 2024-12-17 11:15:55
本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ...
[详细]
蜡笔小新 2024-12-20 19:17:47
由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ...
[详细]
蜡笔小新 2024-12-22 17:57:10
本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ...
[详细]
蜡笔小新 2024-12-22 16:20:33
本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ...
[详细]
蜡笔小新 2024-12-22 14:43:35
1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ...
[详细]
蜡笔小新 2024-12-21 20:05:21
了解 PostgreSQL 社区的最新进展和技术分享 ...
[详细]
蜡笔小新 2024-12-21 14:54:10
本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ...
[详细]
蜡笔小新 2024-12-21 09:21:49
本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ...
[详细]
蜡笔小新 2024-12-20 21:22:27
蜡笔小新 2024-12-20 20:43:56
本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ...
[详细]
蜡笔小新 2024-12-20 18:58:01
docker镜像重启_docker怎么启动镜像dock ...
[详细]
蜡笔小新 2024-12-20 16:34:52
本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ...
[详细]
蜡笔小新 2024-12-20 08:20:01
探讨C#中如何正确访问静态成员,避免使用实例引用导致的错误。 ...
[详细]
蜡笔小新 2024-12-19 14:16:09
本文探讨了在多种编程语言中实现Hello World输出的方法,从经典的C语言到现代的JavaScript,每种语言都有其独特的表达方式。 ...
[详细]
蜡笔小新 2024-12-18 22:02:27
mobiledu2502857827
这个家伙很懒,什么也没留下!