2007-04-27 | Transact-SQL学习整理[更新中]

上一篇 / 下一篇  2007-04-27 22:43:57 / 个人分类:数据库

51Testing软件测试网7e H%e&u P)l

Transact-SQL学习整理51Testing软件测试网 fnp(ff

51Testing软件测试网@c;e qL `R

参考资料来源:http://msdn2.microsoft.com/zh-cn/library/ms310245.aspx

T"M7xtN7M"Yl051Testing软件测试网hVhKD t:O

nvert
t+U2sr{(S^0是转化函数,将某种数据类型的表达式显式转换为另一种数据类型.格式:CONVERT (data_type[(length)], expression [, style]).xpression:是任何有效的表达式.data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。style:日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据;或者字符串格式样式,借以将 float、real、money 或smallmoney 数据转换为字符数据51Testing软件测试网.i"\*o&A\2z&Q&me

51Testing软件测试网Y%r"TRZ8z$XI7R

declare @game_id int
)f(l;`P\D)j;X1sKY0a0声明变量.变量是在批处理或过程的主体中用 DECLARE 语句声明的,并用 SET 或 SELECT 语句赋值。游标变量可使用此语句声明,并可用于其他51Testing软件测试网7^(W6hmM'V-wGN
与游标相关的语句。所有变量在声明后均初始化为 NULL。格式:DECLARE @local_variable (Transact-SQL)

3ae4_U0ZnQk0

g Xj"i6|6n0select @game_id={?game_id}51Testing软件测试网)]jSuU,B l
指定使用 DECLARE @local_variable 创建的指定局部变量应设置为指定表达式。{?game_id}就是右边传进来的参数变量.

/scD"I*u0

{V5`8O5W.N@ _?;a9v `5w0datediff函数51Testing软件测试网"R"V[%qYn%vPQ-Ql
返回跨两个指定日期的日期边界数和时间边界数。格式:DATEDIFF ( datepart , startdate , enddate ).datepart:指定应在日期的哪一51Testing软件测试网5[/A1bp?0x
部分计算差额的参数。startdate:计算的开始日期。enddate:计算的结束日期。

}mb3kn0

W iyy%e UZ0decimal
)Z9|!b7eP;w0i9u0带固定精度和小数位数的数值数据类型。格式:decimal[ (p[ , s] )].p(精度):最多可以存储的十进制数字的总位数,包括小数点左边51Testing软件测试网%Z%Bybu@n ?1g
和右边的位数。s(小数位数):小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。51Testing软件测试网0CL/RRG^

jR.~V9AxO_&f0sum
a,d'n8Uj9x&y [0返回表达式中所有值的和或仅非重复值的和。SUM 只能用于数字列。空值将被忽略。格式:SUM ( [ ALL | DISTINCT ] expression )51Testing软件测试网6E VG z|l
ALL :对所有的值应用此聚合函数。ALL 是默认值。DISTINCT :指定 SUM 返回唯一值的和。expression:常量、列或函数与算术、位和字符
6x0U7E4{/@$h#a0串运算符的任意组合。

(RxXIzQ:S [051Testing软件测试网X|;[!_9b {&C1D

IsNull51Testing软件测试网 Q"FN;\!Sdtr:h)B
使用指定的替换值替换 NULL。格式:ISNULL ( check_expression , replacement_value ).check_expression :将被检查是否为 NULL 的
|D"b3b9a0Ix {&no0表达式。check_expression 可以为任何类型。replacement_value :当 check_expression 为 NULL 时要返回的表达式。如果51Testing软件测试网Z R*I%q)a;y(G~e
check_expression 不为 NULL,则返回它的值

'j c }eVp$M051Testing软件测试网0r8a&r h0\d4V4H

declare fix_cursor cursor51Testing软件测试网7q$B.P,P j2Tq
DECLARE CURSOR 定义 Transact-SQL 服务器游标的属性,例如游标的滚动行为和用于生成游标所操作的结果集的查询。OPEN 语句填充结果集,FETCH 从结果集返回行。CLOSE 语句释放与游标关联的当前结果集。DEALLOCATE 语句释放游标所使用的资源。
"me\;bf5U1GV9Gs0游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。
d`WO*rj0游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。
)BT.WI:tn@z Ju0参考链接:http://msdn2.microsoft.com/zh-cn/library/ms180169.aspx51Testing软件测试网&~M2l-?fE3h(s
http://www.knowsky.com/344071.html

8w2i~lB7TV5o4KS0

Y \ F6o2J j$~Fy0if @@sqlstatus = 1
uk(x6l9Sj I9p0@@sqlstatus contains status information resulting from the last fetch statement for the current user session
;Y/B,AH,L p^f9|3B }`0@@sqlstatus has no effect on @@error output.
f&E(q,Dn7`051Testing软件测试网ea6a.y(~U
fetch:This statement retrieves one row from a group of rows that were identified by the SQL SELECT statement.  After a SELECT statement executes, you can use the FETCH statement to sequentially retrieve one row at a time from the selected rows.
'X Z s}t,NP/B*e0参考资料:51Testing软件测试网PmM{Z
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@ebt-link;pt=41423;lang=zh?target=%25N%15_41649_START_RESTART_N%2551Testing软件测试网 e^f/G omc$~ M&V
http://www.nis.com/oracle/sql_fetch.html

7zB G:F#\jrxi051Testing软件测试网 `1H4}%i `H

raiserror 33333 " Selection failed in fix_cursor on database!"  raiserror both displays a user-defined error or local variable message on the user's screen and sets a system flag to record the fact that an error has occurred51Testing软件测试网z6QC(pa:?L f,f*M
参考资料:51Testing软件测试网G/M2F0bN?YAWw
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView;pt=41649;lang=zh?DwebQuery=raiserror51Testing软件测试网?? e O`#Z

51Testing软件测试网eXSn9S

close fix_cursor               
.r:B8roG Af[w0deallocate cursor fix_cursor  51Testing软件测试网b]\f$jV7K
When you are finished with the result set of a cursor, you can close it using.
e'O(MpW0To discard a cursor, you must deallocate it using.51Testing软件测试网 ^5CLhn
Deallocating a cursor frees up any resources associated with the cursor, including the cursor name. You cannot reuse a cursor name until you deallocate it. If you deallocate an open cursor, Adaptive Server automatically closes it. Terminating a client connection to a server also closes and deallocates any open cursors.51Testing软件测试网6R%p+ED3qP

?.E0H,D%a0参考资料:51Testing软件测试网 V ] ln6e{ @
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/51606;pt=50175/*;lang=zh;nh=1?DwebQuery=deallocate51Testing软件测试网e6GxJ+t

&ca)c7K%? _0if @@error!=0  
$` g&b.N8I:Xm0The @@error global variable is commonly used to check the error status of the most recently executed batch in the current user session. @@error contains 0 if the last transaction succeeded; otherwise @@error contains the last error number generated by the system
xp;kkm[0参考资料:http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/41423;pt=38523/*;lang=zh?DwebQuery=@@error#X51Testing软件测试网 v Q7R1ywc1isR#t

+Y`V(P Z n2Prn w0 51Testing软件测试网t~L,j j0qczj

51Testing软件测试网/|k} Hxaw

if not exists(...)51Testing软件测试网g6?&a/t9W4K
指定一个子查询,测试行是否存在。
0}mgre!cg N0参考资料:http://msdn2.microsoft.com/zh-cn/library/ms188336.aspx

2oK6s(Ly(_*B0

qg6s|H;R5i0exec sp_3d_prizegiving51Testing软件测试网 {yZKqNlO-[\ L
执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、标量值用户定义函数或扩展存储过程。
9lv_ tz[0参考资料:http://msdn2.microsoft.com/zh-cn/library/ms188332.aspx51Testing软件测试网1]$MF+VMF7J

51Testing软件测试网?`wY'g^

datediff(month,drawtime,:ld_dd)=051Testing软件测试网*BO Gw$YhN+v9I~
格式:DATEDIFF ( datepart , startdate , enddate )
1B9Sd*E6{W0返回跨两个指定日期的日期边界数和时间边界数。datepart:指定应在日期的哪一部分计算差额的参数。startdate:计算的开始日期。
I%|Z(b4h6\0enddate:计算的结束日期。
/N!k0~!Z3[4Hsk/p0参考资料:http://msdn2.microsoft.com/zh-cn/library/ms189794.aspx

8KW.Qa&J*S a051Testing软件测试网x&[/]'p0N/WS g

right(region_code,4)="0000"
0OhO N1{ N0格式:RIGHT ( character_expression , integer_expression )
j%F'm]5N-d)E$Fc0返回字符串中从右边开始指定个数的字符。character_expression字符或二进制数据表达式。character_expression 可以是常量、变量或51Testing软件测试网+J.bhU:oC
列,integer_expression正整数,指定 character_expression 将返回的字符数。51Testing软件测试网-N]#R:E8C9o E+L4u
参考资料:http://msdn2.microsoft.com/zh-cn/library/ms177532.aspx51Testing软件测试网,xdE3m0_)i$L/U`U

51Testing软件测试网[F |8~:W9bM

execute sp_statis_date_before '2007-06-06 10:00:00'
v4h!\gu)v!F0格式:
#_P6al(]d0Execute a stored procedure or function51Testing软件测试网gO;FZ&K~@ o
[ { EXEC | EXECUTE } ]
XN m^\/Tu$?1C0    {51Testing软件测试网TM-@ G*RM SA:j
      [ @return_status = ]51Testing软件测试网D)s-} q7T'Gp
      { module_name [ ;number ] | @module_name_var }
g utKJ8x0F$f0        [ [ @parameter = ] { value
^(J8?"dFb#K2y0k0                           | @variable [ OUTPUT ]
8U-l6p;Cn1y,z0                           | [ DEFAULT ]
&i{[,GFnNQ;dW0                           }
`3g t\+mz ]0        ]51Testing软件测试网;\SO8ligzn-@d(W
      [ ,...n ]
[ s YOD#T4`Gq$@1Z0      [ WITH RECOMPILE ]
'~,nMT*k0?,|x0    }
^nb{:D4G I3FK0[;]
5afcJ ~h0执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、标量值用户定义函数或扩展存储过程。
I7` _"e'\ ^6tW+iY0value:传递给模块或传递命令的参数值。如果参数名称没有指定,参数值必须以在模块中定义的顺序提供。51Testing软件测试网9\yK7S+K\?,A
参考资料:http://msdn2.microsoft.com/zh-cn/library/ms188332.aspx

f J R zO/_0

TAG: 数据库 SQL sybase

将测试进行到底 引用 删除 wang_sweet99   /   2010-12-17 16:58:10
太有才了
将测试进行到底 引用 删除 wang_sweet99   /   2010-12-17 16:58:01
3
jackz的个人空间 引用 删除 jackz   /   2007-05-10 20:02:02
不错不错
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar