??xml version="1.0" encoding="utf-8" standalone="yes"?>日本亚洲视频,久久一区二区三区四区五区 ,一区二区国产视频http://www.aygfsteel.com/fuxueliang8806/做h低调!zh-cnWed, 18 Jun 2025 15:22:48 GMTWed, 18 Jun 2025 15:22:48 GMT60常用存储q程语法http://www.aygfsteel.com/fuxueliang8806/archive/2009/04/29/268074.html付学?/dc:creator>付学?/author>Wed, 29 Apr 2009 03:42:00 GMThttp://www.aygfsteel.com/fuxueliang8806/archive/2009/04/29/268074.htmlhttp://www.aygfsteel.com/fuxueliang8806/comments/268074.htmlhttp://www.aygfsteel.com/fuxueliang8806/archive/2009/04/29/268074.html#Feedback0http://www.aygfsteel.com/fuxueliang8806/comments/commentRss/268074.htmlhttp://www.aygfsteel.com/fuxueliang8806/services/trackbacks/268074.html 前面学过了基本的存储q程,?

存储q程入门

现在学一下常用的存储q程的语法,只要׃点点旉学习下,p用存储过E实现很复杂的功能,可以写很多代码?

Z方便说明Q数据库使用SQL Server的示例数据库QNorthwind和pubsQ如果SQL Server中没有的话,可以按下面的Ҏ安装

1Q下载SQL2000SampleDb.msi,下蝲地址是:
http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
2Q安装后Q到默认目录C:\SQL Server 2000 Sample Databases 有instnwnd.sql Qinstpubs.sql两个文g
3Q在sql server中运行这两个sql 可以创ZNorthwind和pubs数据库?

下面开始学T-SQL的语?


一.注释


-- 单行注释Q从q到本行l束为注?cMC++,c#?/
/* … */ 多行注释Q类似C++QC#?* … */


?变量Qint, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar。。。。。。)
语法Q?
DECLARE
{
{@local_variable data_type}
} [,...n]
例如Q?


declare @ID int --x一个名为@ID的变量,cd为int?

?在SQL ServerH口中打印出变量的?


语法Q?
PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr


?变量赋?


例如Q?

--从数据表中取出第一行数据的ID,赋值给变量@idQ然后打印出?
Declare @ID int
Set @ID = (select top(1) categoryID from categories)
Print @ID

在SQL中,我们不能像代码那L接给变量赋|例如@id = 1Q如果要辑ֈq样的功能,可以q样写:

Declare @ID int
Set @ID = (select 1) -- cM @ID=1
Select @id=1 -- cM @ID=1
Print @ID


?变量q算(+,-,*,/,……)


以下必要时候省略变量申?
Set @ID = (select 1+5) --cM @ID=1+5
Set @ID=(select 1-@ID) --cM @ID=1-@ID

?比较操作W?
• > (greater than).
• < (less than).
• = (equals).
• <= (less than or equal to).
• >= (greater than or equal to).
• != (not equal to).
• <> (not equal to).
• ! < (not less than).
• !> (not greater than).
没什么说?


?语句块:Begin … end
多条语句作Z个块Q类gC++QC#中的{ }
例如Q?
Begin
Set @ID1 = (select 1)
Set @ID2 = (select 2)
End

?IfQ?if…else…
语法Q?
IF Boolean_expression
{sql_statement | statement_block}
[ELSE
{sql_statement | statement_block}]
例如Q?

If @id is not null
Print ‘@id is not null
if @ID = 1
begin
Set @ID = (select 1 + 1)
end
else
begin
set @ID=(select 1+2)
end


上面的例子用C比较操作W,语句块,和IF的语法?


?执行其他存储q程 EXEC
例如

EXEC dbo.[Sales by Year] @Beginning_Date=’1/01/90’, @Ending_Date=’1/01/08’


?事务

语法Q?


BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable]


例如

BEGIN TRAN
-- 做某些操作,例如Insert into …
if @@error <> 0
BEGIN
ROLLBACK TRAN
END
else
BEGIN
COMMIT TRAN
END

十一.游标

我们可以在存储过E中用Select语句取出每一行数据进行操作,q就需要用到游标?


语法Q?
DECLARE cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement

[FOR UPDATE [OF column_name [,...n]]]


例如Q?

DECLARE @au_id varchar(11), @au_fname varchar(20) –x变量
--x一个游?
DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname FROM authors
--打开游标
OPEN authors_cursor
--取出?
FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
--循环取出游标的?
WHILE @@FETCH_STATUS = 0
BEGIN
Print @au_id
Print @au_fname
Print ‘ ’
FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname
END
CLOSE authors_cursor –关闭游标
DEALLOCATE authors_cursor --释放游标
我觉得上面的是存储过E常用的一些东东,如果要更深入的了解,更详l的帮助Q请参考SQL Server的帮助文?

]]>
常用正则表达?/title><link>http://www.aygfsteel.com/fuxueliang8806/archive/2009/04/14/265538.html</link><dc:creator>付学?/dc:creator><author>付学?/author><pubDate>Tue, 14 Apr 2009 08:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/fuxueliang8806/archive/2009/04/14/265538.html</guid><wfw:comment>http://www.aygfsteel.com/fuxueliang8806/comments/265538.html</wfw:comment><comments>http://www.aygfsteel.com/fuxueliang8806/archive/2009/04/14/265538.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/fuxueliang8806/comments/commentRss/265538.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/fuxueliang8806/services/trackbacks/265538.html</trackback:ping><description><![CDATA[<p>下面都是我收集的一些比较常用的正则表达式,因ؓq_可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同用。呵c?/p> <p>匚w中文字符的正则表辑ּQ?[u4e00-u9fa5]<br /> 评注Q匹配中文还真是个头疼的事,有了q个表达式就好办?/p> <p>匚w双字节字W?包括汉字在内)Q[^x00-xff]<br /> 评注Q可以用来计字W串的长度(一个双字节字符长度?QASCII字符?Q?/p> <p>匚wI白行的正则表达式:ns*r<br /> 评注Q可以用来删除空白行</p> <p>匚wHTML标记的正则表辑ּQ?lt; (S*?)[^>]*>.*?|< .*? /><br /> 评注Q网上流传的版本太糟p,上面q个也仅仅能匚w部分Q对于复杂的嵌套标记依旧无能为力</p> <p>匚w首尾I白字符的正则表辑ּQ^s*|s*$<br /> 评注Q可以用来删除行首行I白字符(包括I格、制表符、换늬{等)Q非常有用的表达?/p> <p> </p> <p>匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*<br /> 评注Q表单验证时很实?/p> <p>匚w|址URL的正则表辑ּQ[a-zA-z]+://[^s]*<br /> 评注Q网上流传的版本功能很有限,上面q个基本可以满需?/p> <p>匚w帐号是否合法(字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br /> 评注Q表单验证时很实?/p> <p>匚w国内电话LQd{3}-d{8}|d{4}-d{7}<br /> 评注Q匹配Ş式如 0511-4405222 ?021-87888822</p> <p>匚w腾讯QQP[1-9][0-9]{4,}<br /> 评注Q腾讯QQ号从10000开?/p> <p>匚w中国邮政~码Q[1-9]d{5}(?!d)<br /> 评注Q中国邮政编码ؓ6位数?/p> <p>匚ww䆾证:d{15}|d{18}<br /> 评注Q中国的w䆾证ؓ15位或18?/p> <p>匚wip地址Qd+.d+.d+.d+<br /> 评注Q提取ip地址时有?/p> <p>匚w特定数字Q?br /> ^[1-9]d*$    //匚w正整?br /> ^-[1-9]d*$   //匚w负整?br /> ^-?[1-9]d*$   //匚w整数<br /> ^[1-9]d*|0$  //匚w非负整数Q正整数 + 0Q?br /> ^-[1-9]d*|0$   //匚w非正整数Q负整数 + 0Q?br /> ^[1-9]d*.d*|0.d*[1-9]d*$   //匚w正QҎ<br /> ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匚w负QҎ<br /> ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匚w点?br /> ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匚w非负点敎ͼ正QҎ + 0Q?br /> ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匚w非正点敎ͼ负QҎ + 0Q?br /> 评注Q处理大量数据时有用Q具体应用时注意修正</p> <p>匚w特定字符Ԍ<br /> ^[A-Za-z]+$  //匚w?6个英文字母组成的字符?br /> ^[A-Z]+$  //匚w?6个英文字母的大写l成的字W串<br /> ^[a-z]+$  //匚w?6个英文字母的写l成的字W串<br /> ^[A-Za-z0-9]+$  //匚w由数字和26个英文字母组成的字符?br /> ^w+$  //匚w由数字?6个英文字母或者下划线l成的字W串</p> <p>在用RegularExpressionValidator验证控g时的验证功能及其验证表达式介l如?</p> <p>只能输入数字Q?#8220;^[0-9]*$”<br /> 只能输入n位的数字Q?#8220;^d{n}$”<br /> 只能输入臛_n位数字:“^d{n,}$”<br /> 只能输入m-n位的数字Q?#8220;^d{m,n}$”<br /> 只能输入零和非零开头的数字Q?#8220;^(0|[1-9][0-9]*)$”<br /> 只能输入有两位小数的正实敎ͼ“^[0-9]+(.[0-9]{2})?$”<br /> 只能输入?-3位小数的正实敎ͼ“^[0-9]+(.[0-9]{1,3})?$”<br /> 只能输入非零的正整数Q?#8220;^+?[1-9][0-9]*$”<br /> 只能输入非零的负整数Q?#8220;^-[1-9][0-9]*$”<br /> 只能输入长度?的字W:“^.{3}$”<br /> 只能输入?6个英文字母组成的字符Ԍ“^[A-Za-z]+$”<br /> 只能输入?6个大写英文字母组成的字符Ԍ“^[A-Z]+$”<br /> 只能输入?6个小写英文字母组成的字符Ԍ“^[a-z]+$”<br /> 只能输入由数字和26个英文字母组成的字符Ԍ“^[A-Za-z0-9]+$”<br /> 只能输入由数字?6个英文字母或者下划线l成的字W串Q?#8220;^w+$”<br /> 验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开_长度?-18之间Q?/p> <p>只能包含字符、数字和下划Uѝ?br /> 验证是否含有^%&’,;=?$”{字W:“[^%&',;=?$x22]+”<br /> 只能输入汉字Q?#8220;^[u4e00-u9fa5],{0,}$”<br /> 验证Email地址Q?#8220;^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”<br /> 验证InternetURLQ?#8220;^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”<br /> 验证电话LQ?#8220;^((d{3,4})|d{3,4}-)?d{7,8}$”</p> <p>正确格式为:“XXXX-XXXXXXX”Q?#8220;XXXX-XXXXXXXX”Q?#8220;XXX-XXXXXXX”Q?/p> <p>“XXX-XXXXXXXX”Q?#8220;XXXXXXX”Q?#8220;XXXXXXXX”?br /> 验证w䆾证号Q?5位或18位数字)Q?#8220;^d{15}|d{}18$”<br /> 验证一q的12个月Q?#8220;^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”?#8220;1”“12”<br /> 验证一个月?1天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”</p> <p>正确格式为:“01”“09”?#8220;1”“31”?/p> <p>匚w中文字符的正则表辑ּQ?[u4e00-u9fa5]<br /> 匚w双字节字W?包括汉字在内)Q[^x00-xff]<br /> 匚wI的正则表辑ּQn[s| ]*r<br /> 匚wHTML标记的正则表辑ּQ?< (.*)>.*|< (.*) />/<br /> 匚w首尾I格的正则表辑ּQ?^s*)|(s*$)<br /> 匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*<br /> 匚w|址URL的正则表辑ּQhttp://([w-]+.)+[w-]+(/[w- ./?%&=]*)?</p> <p>(1)应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?br /> String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}</p> <p>(2)应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现<br /> String.prototype.trim = function()<br /> {<br /> return this.replace(/(^s*)|(s*$)/g, “”);<br /> }<br /> (3)应用Q利用正则表辑ּ分解和{换IP地址<br /> function IP2V(ip) //IP地址转换成对应数?br /> {<br /> re=/(d+).(d+).(d+).(d+)/g //匚wIP地址的正则表辑ּ<br /> if(re.test(ip))<br /> {<br /> return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1<br /> }<br /> else<br /> {<br /> throw new Error(”Not a valid IP address!”)<br /> }<br /> }<br /> (4)应用Q从URL地址中提取文件名的javascriptE序<br /> s=”http://www.9499.net/page1.htm”;<br /> s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm<br /> (5)应用Q利用正则表辑ּ限制|页表单里的文本框输入内?br /> 用正则表辑ּ限制只能输入中文Qonkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,”))”<br /> 用正则表辑ּ限制只能输入全角字符Q?onkeyup=”value=”/blog/value.replace(/["^uFF00-uFFFF]/g,”) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,”))”<br /> 用正则表辑ּ限制只能输入数字Qonkeyup=”value=”/blog/value.replace(/["^d]/g,”) “onbeforepaste= “clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”))”<br /> 用正则表辑ּ限制只能输入数字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,”<br /> </p> <img src ="http://www.aygfsteel.com/fuxueliang8806/aggbug/265538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/fuxueliang8806/" target="_blank">付学?/a> 2009-04-14 16:21 <a href="http://www.aygfsteel.com/fuxueliang8806/archive/2009/04/14/265538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">פ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¸</a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank">ɳƺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ͼƬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">·</a>| <a href="http://" target="_blank">֯</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ְ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">Ӧ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˴</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֺ</a>| <a href="http://" target="_blank">ͭ</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">人</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͭϿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӵ</a>| <a href="http://" target="_blank">ԣ</a>| <a href="http://" target="_blank">dz</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ߺ</a>| <a href="http://" target="_blank">ں</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>