在SQL Server中进行开发会让你身处险地,并且寻找快速解决方案。我们编辑了前十名关于SQL Server开发的常见问题。对常见的针对表和字段的名字约束进行探究。学习如何解决并发问题,并且在不了解T-SQL的情况下编写存储过程。查看这些解决方案的快速参考,并且了解更多内容。 花点时间来会见我们的全体专家,然后看看有关SQL Server主体的全体列表. G Q9hK#rb
3B,_(L.
Take a moment to meet all of our experts and view the complete list of SQL Server topics. FE@v1= 7
Fe\2jV$z
你可能会问的前十名的SQL Server开发问题: " Qbp\6%
4athIw
1、什么是常见的对表和字段的名字约束? VSKLV$o
T+9 "+(Y;
2、有没有可能在不了解T-SQL的情况下编写存储过程? :zbVyn4#
nnW$S$'wC;
3、T-SQL 中如何比较CLR 存储过程和函数的性能? `Zi>;iEU<k
`{Z\nbr'
4、我如何在一个存储过程中使用另一个存储过程产生的结果? &P14HfW@.(
atB&x'IF
5、我如何解决SQL Server 2005的并发问题? 9l@5n<nT
)G0iTC ,
6、在SQL Server 2005中用什么工具替代了查询分析器? a9g}C;1
?PTxi7
7、C你能提供一些有关SQL 和T-SQL的详细信息吗? )eMuzn0X2
!wxq@c
8、SQL Server 2005 有没有新的索引类型? c*H+(oiai
)Z'%av`*bS
9、我如何创建一个脚本在表中进行选择? H?c;<X{
5kz5s5Cuh
10、我如何列出那些没有记录的数据库表? Q@S aDG>
+@VCW3V
对于表和字段的常见名字约束 I~'ddHy
5?`{Pml
u0o!E|{"?
专家回答: k@n:SrXrv
\${~l#P
SQL Server 2000下的表和字段名称有1到128字节的限制,并且遵循用于标识的规则。 80i5&Yho>
bF{"e-
第一个字母必须是如下的一种: 6 1E
2f / f4r
· Unicode Standard 2.0中规定的字母。 KTQ,4' ;gy
k8I cYO
Unicode对字母的定义包括:拉丁字母,从A到Z,除了来自其他语言的字母之外。 8< k8)^!^
<9<$7m `
· 下划线(_),at符号(@),或者数字符号(#) |d B0>3@
#(X6*O
在SQL Server中以这些符号作为标识符的开始具有特殊的含义。一个以at符号(@)开头的标识符表示一个本地的变量或者参数。一个以数字符号(#)开头的标识符代表一个临时表或者过程。一个以两个数字符号(##)开头的标识符标识的是一个全局临时对象。 4jg9 !/#
%0Db>g/cP
一些Transact-SQL函数的名字以两个at符号(@@)开头。为了避免与这些函数混淆,推荐你不要使用两个at符号(@@)开头的标识符。 W%0lG|}
jf-^KI;sB
接下来的字母可以是以下的任意几种: `Hklq-n{
$w{nJ^y
· Unicode Standard 2.0定义的字母 A,id=>ZEF
e4 {6A}E
· 来自基础拉丁文或者其他语音的十进制数字 ^.NMXDI
l<,Hhk/
· at符号(@),美元符号($),数字符号(#),或者下划线 Z `gjAen
~B$-(d2CJ
标识符绝对不能是Transact-SQL的保留字。SQL Server保留了一些大写和小写的保留字。内建的空间或者特殊的字母都不允许出现,尽管你可以在好的老版本的Northwind中看到它们包含了内建的空间。你必须通过把它们括在括号中才可以访问。 VHxHs9%]O
v@J/
我可以在不具有任何T-SQL知识的情况下编写SQL Server2005存储过程吗? }P3G dK
@ }21c~
I06+j
作为过去几年里面微软试图用SQL Server 2005的.NET集成来称霸市场的野心的结果,许多程序员都认为创建SQL Server存储过程不再必需T-SQL了。不幸的是(或者并非如此,这根据你的观点),这并不全是事实。在技术上是可以在不了解T-SQL的情况下创建存储过程的,但是没有T-SQL的话则无法访问任何的数据。 UnGsHK
-eh82N02U
在CLR存储过程内部进行数据访问,是通过使用标准的ADO.NET类来完成的。开发人员会在应用程序层发现很多同样的没有用处的数据访问代码,这些代码会很轻易地转移到SQLCLR例程中去。当中间层的这些ADO.NET类需要使用T-SQL来访问数据的时候,在 CLR主机提供的环境中就会使用同样的类。 01y %F
_}H7<zG\R
我要强调的是,从技术角度来说,不使用T-SQL来编写存储过程是可能的。那么有没有理由这么做呢?一种情况就是这是一个用来从普通文件或者网络服务中检索数据的CLR存储过程,并将数据格式设置为行集。这里可能就会用到不需要T-SQL的操作——但是这并不是对T -SQL存储过程能力的一个很好的比喻。 `[.36?dF|