在SQL Server中进行开发会让你身处险地,并且寻找快速解决方案。我们编辑了前十名关于SQL Server开发的常见问题。
CLR存储过程vs. T-SQL存储过程 +O4P?^;y
t*U5pUL
b5CaWj-s
CLR存储过程和函数与T-SQL存储过程和函数相比,性能如何? |x]u(jzq"
<KklNL;
专家回答: sdW@JMU%^
(-yBZ m4
这里是用来比较T-SQL例程和CLR例程性能的一种常用的规则:用你的数据,在你的服务器上,测试两套配置,看看哪一个比较好。 Jv+~Ux
Koz"(EtmAD
就是说,许多人都运行过性能测试,一般的结果就是T-SQL在标准的CRUD(创建、读取、更新、删除)操作上表现要比好一点,而在复杂数学、字符串赋值和其他的超过数据访问的任务上,则是CLR的性能表现更好一点。 HL)f^0*x
twNH,Q]g,0
SQL Server 的专家Gustavo Larriera编辑了如下一些关于这个主题的有用链接: d:T4,cXp
| w%PF
·在 SQL Server 2005中使用CLR Integration Gb/ q.s
`xZH l)i
·简单介绍在 SQL Server 2005中的 CLR Integration ;B{sbqx
Bpwg?v(J
·在 SQL Server 2005中对CLR 和T-SQL做出选择 (~w8rc
W&H+&x*
·介绍 SQL Server 2005中的 CLR Integration b ^@yt>h_T
s`/&8Zm
·SQL Server 闲谈: SQL Server 2005 Beta 2 CLR问题与回答 iZr`bvR
d pSM6i
·数据库管理员的酒吧门防御.NET大坏狼 =iFom-d
)C?AQ6]ua
·用户自定义函数的性能比较 `P.kHq"g
kl{|<[
如何在一个存储过程中使用另一个存储过程的结果 +FHAv@ S
#u*^ue,
e'$2ZJt}
我编写了一个存储过程在Crystal Report中使用。它工作得很好。我还想在另外一个存储过程中使用这个存储过程产生的结果。我该怎么做? M^>]X%>;
wB 2[H ;
专家回答: _{=K_sl}
gp* !0p
只要存储过程只产生了一个单个的结果,要在另外一个存储过程中使用这个存储过程产生的输出,这个技术是非常直接的。这个技术就是使用一个临时表来装载存储过程的巨额iguo,然后通过INSERT EXEC语句来执行这个过程并保存结果。一旦结果保留在临时表中了,他们就可以像使用其它表数据一样来使用它了。 N5?k]z=D90
#"$<+3
这里是我们可能会复用的一个过程例子: p&!;oK]Ly
CREATE PROC usp_Demo_AllAuthors as select * from pubs..authors )qLk??PR^
GO 3B's^=O<
S=z*%H[hQ
现在有一个存储过程使用usp_Demo_AllAuthors的结果: e \J;
CREATE proc usp_Demo_SPUser as CREATE TABLE #Authors ( &HH(.PC&
au_id varchar(11) NOT NULL PRIMARY KEY CLUSTERED, qZB5<<|
au_lname varchar (40) NOT NULL , n4kY,a"$
au_fname varchar (20) NOT NULL , E}$TOCdQ,>
phone char (12) NOT NULL, l*y>WaoO
address varchar (40) NULL , *@LSSY( M
city varchar (20) NULL , fqzZa2#
state char (2) NULL , Vh-!a
zip char (5) NULL , sswGL2fb [
contract bit NOT NULL cS^OVEN/k@
)– Execute usp_Demo_AllAuthors storing the _GS).KHXfI
– results in #Authors ?KHoyl
insert into #Authors pE#O1{>
exec usp_Demo_AllAuthors– Here we use the #Authors table. This example only o@I#%#
– only selects from the temp table but you could do much Pd|0=p
– more such as use a cursor on the table or join with O>KI;1
– other data. `ZZYj,@0@
SELECT au_fName + ‘ ‘ + au_lname as [name] S+x6-^:e
, address+’, ‘+city+’, ‘+state+’ ‘+zip [Addr] PS^w 'r
from #AuthorsDROP TABLE #Authors `FHwvy
GO zCTe9 P/7
8pha0._5