存储过程是SQLServer2005程序设计中最重要的一环,您会发现,应用系统中的许多作业都会交由存储过程来完成。在以下的操作步骤中,我们带大家利用VisualStudio2005整合式开发环境,实际建立一个CLR存储过程(采用VisualC#),并示范如何使用它:
成都创新互联总部坐落于成都市区,致力网站建设服务有网站设计、做网站、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
1.如图表1所示,选取MicrosoftVisualStudio2005菜单指令来开启VisualStudio2005的整合式开发环境。
2.从「项目」菜单中选取「新增/项目」指令。
3.如图表2所示,选取「类别库」模板,然后依序指定项目名称(SayHello)、存放位置、以及方案名称(SayHello)之后,按一下「确定」按钮。
4.于VisualStudio2005整合式开发环境的「方案总管」中,使用鼠标右键按一下预设建立的Class1.cs并从快捷菜单中选取「删除」指令以便将它删除。
5.从「项目」菜单中选取「加入新项目」指令。
6.如图表3所示,于「加入新项目」对话框中,选取「类别」模板,然后以SayHelloClass.cs作为类别档的文件名称,然后按一下「加入」按钮。
7.于程序代码编辑器中,将SayHelloClass类别的程序代码改写如下:
- usingMicrosoft.SqlServer.Server;
- namespaceSayHello
- {
- publicclassSayHelloClass
- {
- [Microsoft.SqlServer.Server.SqlProcedure()]
- publicstaticvoidSayHello(refstringgreeting)
- {
- SqlMetaDatacolumnInfo=newSqlMetaData("问候",SqlDbType.NVarChar,12);
- SqlDataRecordgreetingRecord=newSqlDataRecord(newSqlMetaData[]{columnInfo});
- greetingRecord.SetString(0,"大家好,我是章立民!");
- //呼叫Pipe对象的Send方法将单一数据列结果集(也就是SqlDataRecord对象)
- //直接传送给客户端。
- SqlContext.Pipe.Send(greetingRecord);
- //将文字符串指派给输出参数。
- greeting="现在时间是"+DateTime.Now.ToString()+"---章立民研究室向您问好!";
- }
- }
- }
上述程序代码中的SayHello程序是一个公用静态方法,而它也就是CLR存储过程所实际呼叫的对象。
8.按一下工具列中的「储存」按钮。
9.如图表4所示,使用鼠标连按两下「方案总管」中的Properties节点,一开始会显示出「应用程序」索引卷标页面,您可以去设定组件名称与跟命名空间。不过以本实作演练而言,请采用默认值,不要更改。
10.按一下左侧的「编译」索引卷标来切换至其页面,并且将「建置输出路径」设定成bin然后按一下工具列中的「储存」按钮。
11.从「建置」菜单中选取「建置SayHello」指令。
12.好的,我们现在已经完成组件的建置作业,现在必须回到SQLServerManagementStudio中,以便登录组件并建立指向该组件的存储过程。
13.请您于SQLServerManagementStudio中执行以下的程序代码,以便使用CREATEASSEMBLY陈述式来登录组件SayHello.dll,然后使用CREATEPROCEDURE陈述式建立一个会参考所登录之组件SayHello.dll的存储过程:
- USE北风贸易;
- GO
- IFEXISTS(SELECT*FROMsys.proceduresWHERE[name]='SayHello')
- DROPPROCEDURESayHello;
- GO
- IFEXISTS(SELECT*FROMsys.assembliesWHERE[name]='SayHello')
- DROPASSEMBLYSayHello;
- GO
- --登录组件SayHello.dll(请务必确认组件所在路径正确)
- CREATEASSEMBLYSayHello
- FROM'C:\SQL2005Demo\CH13\SayHello\SayHello\bin\SayHello.dll'
- WITHpermission_set=Safe;|
- GO﹂──>组件的位置路径
- --建立一个会参考所登录之组件SayHello.dll的存储过程
- CREATEPROCEDUREdbo.SayHello
- (
- @Greetingnvarchar(80)OUTPUT
- )
- ASEXTERNALNAMESayHello.[SayHello.SayHelloClass].SayHello;
- GO↓
- [命名空间.类别名称]
14.请您继续于SQLServerManagementStudio中执行以下的程序代码,以便尝试执行我们所建立的CLR存储过程(执行结果如图表6所示):
- USE北风贸易;
- GO
- EXECsp_configure'clrenabled','1';
- GO
- RECONFIGURE;
- GO
- DECLARE@return_valueint,@Greetingnvarchar(80);
- --执行CLR存储过程并取得传回值与输出变量的值
- EXECUTE@return_value=dbo.SayHello
- @Greeting=@GreetingOUTPUT;
- --检视传回值与输出变数的值
- SELECT@return_valueAS传回值,
- @GreetingAS"输出参数@Greeting之值";
分享题目:实作CLR存储过程十四步
分享路径:http://www.mswzjz.cn/qtweb/news17/104717.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能