浅析SQLServer一个没有公开的存储过程
2007-11-11 08:26:26 来源:WEB开发网核心提示: 作者:Bipin Joshi翻译:webabcd介绍通常,开发人员使用的是T-SQL来创建sql server(WINDOWS平台上强大的数据库平台)的存储过程、函数和触发器,浅析SQLServer一个没有公开的存储过程(10), 而现在的sql server(WINDOWS平台上强大的数据库平台) 2005已经完全
作者:Bipin Joshi
翻译:webabcd
介绍
通常,开发人员使用的是T-SQL来创建sql server(WINDOWS平台上强大的数据库平台)的存储过程、函数和触发器。 而现在的sql server(WINDOWS平台上强大的数据库平台) 2005已经完全支持.NET通用语言运行时(CLR)了。 这就意味着,你可以使用.NET的语言,如C#、VB.NET之类的来开发sql server(WINDOWS平台上强大的数据库平台)的存储过程、函数和触发器。 sql server(WINDOWS平台上强大的数据库平台) 和 CLR 的集成给我们带来了n多好处,如实时编译、类型安全、增强的安全性以及增强的编程模型等。 本文中,我将向大家演示如何使用C#创建sql server(WINDOWS平台上强大的数据库平台)的存储过程。
背景
我们在使用sql server(WINDOWS平台上强大的数据库平台)存储过程时,最常做的工作就是从数据库中读取或保存数据。 其常用应用如下:
·执行一些简单的逻辑,没有任何返回值。 也没有输出参数。
·执行一些逻辑,并通过一个或更多的输出参数返回结果。
·执行一些逻辑,并返回从表中读取的一条或多条记录。
·执行一些逻辑,并返回一行或多行记录。 这些记录不是从表中读取的,而是你自定义的一些数据行。
为了演示如何用C#开发出这几种应用的sql server(WINDOWS平台上强大的数据库平台)存储过程,我将一个一个地举出示例。
启用CLR集成
在你开始用C#写存储过程之前,必须要启用你的sql server(WINDOWS平台上强大的数据库平台)的CLR集成特性。 默认情况它是不启用的。 打开你的sql server(WINDOWS平台上强大的数据库平台) Management Studio并执行如下脚本。
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />sp_configure 'clr enabled', 1
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />GO
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />RECONFIGURE
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />GO
这里,我们执行了系统存储过程“sp_configure”,为其提供的两个参数分别为:“clr enabled”和“1”。如果要停用CLR集成的话也是执行这个存储过程,只不过第二个参数要变为“0”而已。另外,为了使新的设置产生效果,不要忘记调用“RECONFIGURE”。
sql server(WINDOWS平台上强大的数据库平台)项目
现在打开Visual Studio,并从文件菜单中选择“新建项目”。 在“新建项目”对话框中选择“Visual C#”下的“Database”。 然后选择“sql server(WINDOWS平台上强大的数据库平台)项目”模板。
(WINDOWS平台上强大的数据库平台)的存储过程(图二)" width="462" height="181" />
起好项目名称后就单击“确定”按钮。
很快,你所创建的项目就要求你选择一个sql server(WINDOWS平台上强大的数据库平台)数据库。
(WINDOWS平台上强大的数据库平台)的存储过程(图三)" width="354" height="364" />
按照提示一步一步地做就好了,就算你选择了取消,也可以在“项目”–“属性”对话框中再一次选择数据库。 举个例子,假如你的电脑上有一个Northwind数据库,那么就在“新建数据库引用”对话框中选中它,然后单击“确定”按钮。 之后,sql server(WINDOWS平台上强大的数据库平台)项目在部署的时候就会将我们开发的存储过程写入这个数据库(继续往后看你就清楚是怎么回事了)。
接下来,右键单击你新建的这个项目,选择“添加”-“存储过程”。 然后将会出现如下图所示的对话框:
(WINDOWS平台上强大的数据库平台)的存储过程(图四)" width="397" height="141" />
选择“存储过程”模板,并起一个合适的名字,然后单击“添加”按钮。
添加完后你就会发现,实际上这是创建了一个已经导入了需要用到的命名空间的类。
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />using System;
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />using System.Data;
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />using System.Data.SqlClient;
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />using System.Data.SqlTypes;
(WINDOWS平台上强大的数据库平台)的存储过程(图一)" width="11" height="16" />using Microsoft.SqlServer.Server;
注意一下加粗显示的命名空间(译者注:后两个using)。 System.Data.SqlTypes命名空间包含了很多不同的类型,它们可以用来代替sql server(WINDOWS平台上强大的数据库平台)的数据类型。 Microsoft.SqlServer.Server命名空间下的类负责sql server(WINDOWS平台上强大的数据库平台)的CLR集成。
更多精彩
赞助商链接