您的位置: 旅游网 > 网红

SQL Server数据库开发中的十大问题(2)_a

发布时间:2020-01-16 13:02:15

不具有任何T-SQL知识的情况下编写SQL Server2005存储过程吗? 作为过去几年里面微软试图用SQL Server 2005的.NET集成来称霸市场的野心的结果,许多程序员都认为创建SQL Server存储过程不再必需T-SQL了。不幸的是(或者并非如此,这根据你的观点),这并不全是事实。在技术上是可以在不了解T-SQL的情况下创建存储过程的,但是没有T-SQL的话则无法访问任何的数据。 在CLR存储过程内部进行数据访问,是通过使用标准的ADO.NET类来完成的。开发人员会在应用程序层发现很多同样的没有用处的数据访问代码,这些代码会很轻易地转移到SQLCLR例程中去。当中间层的这些ADO.NET类需要使用T-SQL来访问数据的时候,在 CLR主机提供的环境中就会使用同样的类。 我要强调的是,从技术角度来说,不使用T-SQL来编写存储过程是可能的。那么有没有理由这么做呢?一种情况就是这是一个用来从普通文件或者网络服务中检索数据的CLR存储过程,并将数据格式设置为行集。这里可能就会用到不需要T-SQL的操作——但是这并不是对T -SQL存储过程能力的一个很好的比喻。 CLR存储过程vs. T-SQL存储过程 CLR存储过程和函数与T-SQL存储过程和函数相比,性能如何? 专家回答: 这里是用来比较T-SQL例程和CLR例程性能的一种常用的规则:用你的数据,在你的服务器上,测试两套配置,看看哪一个比较好。 就是说,许多人都运行过性能测试,一般的结果就是T-SQL在标准的CRUD(创建、读取、更新、删除)操作上表现要比好一点,而在复杂数学、字符串赋值和其他的超过数据访问的任务上,则是CLR的性能表现更好一点。 SQL Server 的专家Gustavo Larriera编辑了如下一些关于这个主题的有用链接: ·在 SQL Server 2005中使用CLR Integration。 ·简单介绍在 SQL Server 2005中的 CLR Integration。 ·在 SQL Server 2005中对CLR 和T-SQL做出选择。 ·介绍 SQL Server 2005中的 CLR Integration。 ·SQL Server 闲谈: SQL Server 2005 Beta 2 CLR问题与回答。 ·数据库管理员的防御.NET。 ·用户自定义函数的性能比较。 如何在一个存储过程中使用另一个存储过程的结果 专家回答: 只要存储过程只产生了一个单个的结果,要在另外一个存储过程中使用这个存储过程产生的输出,这个技术是非常直接的。这个技术就是使用一个临时表来装载存储过程的巨额iguo,然后通过INSERT EXEC语句来执行这个过程并保存结果。一旦结果保留在临时表中了,他们就可以像使用其它表数据一样来使用它了。 这里是我们可能会复用的一个过程例子: CREATE PROC usp_Demo_AllAuthors as select * from pubs..authorsGO

现在有一个存储过程使用usp_Demo_AllAuthors的结果: CREATE proc usp_Demo_SPUser as CREATE TABLE #Authors (au_id varchar(11) NOT NULL PRIMARY KEY CLUSTERED,au_lname varchar (40) NOT NULL ,au_fname varchar (20) NOT NULL ,phone char (12) NOT NULL,address varchar (40) NULL ,city varchar (20) NULL ,state char (2) NULL ,zip char (5) NULL ,contract bit NOT NULL)– Execute usp_Demo_AllAuthors storing the– results in #Authorsinsert into #Authorsexec usp_Demo_AllAuthors– Here we use the #Authors table. This example only– only selects from the temp table but you could do much– more such as use a cursor on the table or join with– other data.SELECT au_fName + ‘ ‘ + au_lname as [name], address+’, ‘+city+’, ‘+state+’ ‘+zip [Addr]from #AuthorsDROP TABLE #AuthorsGO

动脉硬化并发症能用通心络胶囊治疗吗
老人心肌梗死患者用通心络有作用吗
滑囊炎能吃藤黄健骨丸吗
活血化瘀消炎止痛舒筋
猜你会喜欢的
猜你会喜欢的