电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SQL SERVER的ROWCOUNT關鍵字

瀏覽:142日期:2023-11-01 17:11:12

因為仰望ORACLE,所以一直都以為SQL SERVER很笨。

據傳SQL 2005有了RowID的東西,可以解決TOP排序的問題。可惜還沒有機會體驗。在SQL 2000中寫存儲過程,總會遇到需要TOP的地方,而一旦遇到TOP,因為沒辦法把TOP后面的數字作為變量寫到預編譯的語句中去,所以只能夠使用構造SQL,使用Exec來執行。不說效率的問題,心里也總覺得這個辦法很笨。

實際上,在SQL 2000中完全可以使用ROWCOUNT關鍵字解決這個問題。

ROWCOUNT關鍵字的用法在聯機幫助中有比較詳細的說明,這兒就不羅嗦了。談談體會。

1、使用ROWCOUNT查詢前幾行結果。

DECLARE @n INTSET @n = 1000SET ROWCOUNT @nSELECT * FROM Table_1

這樣,查詢結果將等同于

SELECT TOP 100 FROM Table_1

2、同樣的道理,使用INSERT INTO..SELECT的時候也有效。

DECLARE @n INTSET @n = 1000SET ROWCOUNT @nINSERT INTO Table_2 (colname1)SELECT colname1=colname2 FROM Table_1

執行的結果將等同于

INSERT INTO Table_2(colname1)SELECT TOP 1000 colname1 = colname2 FROM Table_1

3、執行UPDATE和DELETE。

因為UPDATE和DELETE無法直接使用ORDER BY語法,如果使用ROWCOUNT,將按照主鍵順序從前往后操作。

DECLARE @n INTSET @n = 1000SET ROWCOUNT @nDELETE FROM Table_1

不過也有解決辦法,只要能夠使用ORDER BY關鍵字就可以了,比如說直接用含ORDER BY的子句,或者先使用ORDER BY語法把需要操作的標識列存為一個臨時表或表變量,然后再操作語句中使用IN或EXISTS關鍵字。

DECLARE @n INTSET @n = 1000SET ROWCOUNT @nDECLARE @t TABLE(ID INT)INSERT INTO @tSELECT ID FROM Table_1 ORDER BY colname [ASC/DESC]

DELETE FROM; Table_1 WHERE ID IN (SELECT ID FROM @t)

4、對于ROWCOUNT的設置是與Session有關的。如果占用了一個Session,那么對應的這個數據庫Session將使用最近一次設置的ROWCOUNT,直到Session結束或者修改了ROWCOUNT。

5、在用戶自定義函數中不能使用ROWCOUNT。

6、取消ROWCOUNT。

我不知道為什么在聯機幫助中說,寫存儲過程的時候應該注意盡量避免使用ROWCOUNT,而建議使用TOP。難道MS不知道TOP關鍵后面的數字不能為變量嗎?也許MS是出于擔心開發者忘記了取消ROWCOUNT而影響正常的實現。

使用這樣的語句即可取消ROWCOUNT了。

SET ROWCOUNT 0

8、總結

使用ROWCOUNT之后可以很方便的解決TOP關鍵字不能帶變量的問題,這樣,對于需要排序取值的問題就比較容易解決了。避免了使用EXEC來執行構造SQL語句,調試存儲過程的時候也要方便很多。唯一不方便的是,沒有找到獲取當前ROWCOUNT值的辦法,但仔細想來,得到這個值的用處也并不大。

標簽: Sql Server 數據庫
主站蜘蛛池模板: 江西高职单独招生-江西单招考试-江西高职单招网 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 郑州墨香品牌设计公司|品牌全案VI设计公司 | 湖南自考_湖南自学考试网 | 聚合甘油__盐城市飞龙油脂有限公司| 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 深圳市简易检测技术有限公司 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 环球周刊网| 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 工业设计,人工智能,体验式3D展示的智能技术交流服务平台-纳金网 J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 青岛成人高考_山东成考报名网| 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 高压负荷开关-苏州雷尔沃电器有限公司 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 |