詳解Microsoft SQL Server數(shù)據(jù)庫(kù)開發(fā)問題_Mssql數(shù)據(jù)庫(kù)教程
推薦:解析SQL觸發(fā)器在保持?jǐn)?shù)據(jù)庫(kù)完整性中的實(shí)際應(yīng)用1.觸發(fā)器概述 觸發(fā)器是SQL Server數(shù)據(jù)庫(kù)應(yīng)用中一個(gè)重要工具,是一種特殊類型的存儲(chǔ)過程,應(yīng)用非常廣泛。一般存儲(chǔ)過程主要通過存儲(chǔ)過程名而被直接調(diào)用,觸發(fā)器則是通過事件觸發(fā)執(zhí)行。觸發(fā)器基于一個(gè)表來(lái)創(chuàng)建并和一個(gè)或多個(gè)數(shù)據(jù)修改操作(插入、更新或刪除)相
1.SQL Server 2005中的存儲(chǔ)過程并發(fā)問題
問:我在SQL Server2005中遇到了并發(fā)問題。我持有車票的公共汽車上有一些空閑的座位。我在插入銷售的查票之前,需要查看是否還有空閑的座位。我的存儲(chǔ)過程做的事情如下所示:
以下為引用的內(nèi)容: CREATE PROCEDURE add_ticket — parameters |
問題就是兩個(gè)過程可以同時(shí)讀取空閑票數(shù),并且都可以預(yù)約一張票,即使是那里已經(jīng)沒有空余的了。我需要一種方法來(lái)防止一個(gè)過程在另一個(gè)過程運(yùn)行add_ticket程序,但是還沒有插入一張新票的時(shí)候讀取空票的數(shù)量。
解答: 你是正確的;更高的隔離級(jí)別也不會(huì)保證多個(gè)讀者去同時(shí)去讀取同一個(gè)數(shù)據(jù)行。然而,還有幾種方法你可以完成這項(xiàng)工作。例如,你可以給每個(gè)座位分配一個(gè)惟一的標(biāo)識(shí)符(意思是,惟一鍵——不一定是GUID),并且創(chuàng)建一個(gè)描述哪些座位已經(jīng)被預(yù)訂了的表。在表上放一個(gè) UNIQUE約束,你就可以確保同一個(gè)座位不會(huì)被插入兩次了。
就是說(shuō),我認(rèn)為一個(gè)更有趣的方法就是使用SQL Service Broker。你可以為每個(gè)公交建立一個(gè)會(huì)話,并且將這個(gè)會(huì)話的句柄存放在一個(gè)表中,讀者在執(zhí)行RECEIVE之前可以參考這個(gè)表。通過這種方式,讀者就可以正確地過濾。公共汽車上的每個(gè)座位都插一個(gè)消息到隊(duì)列中。讀者就可以簡(jiǎn)單地RECEIVE到所需的消息(在這個(gè)過程中,預(yù)定公共汽車上的座位)。 Service Broker會(huì)確保沒有消息會(huì)被接受兩次,也就是說(shuō)你不會(huì)再遇到并發(fā)問題了。
2.SQL Server 2005中的索引類別
問:SQL Server 2005中是否有新的索引類別了?
解答: SQL Server 2005沒有為關(guān)系表引入新的索引類型。基本上——聚簇和非聚簇索引是以B-trees的方式實(shí)現(xiàn)的——還仍然在應(yīng)用。然而,SQL Server 2005確實(shí)包含了一些索引上的加強(qiáng),不論是完全文本索引,還是對(duì)于XML數(shù)據(jù),此外這些加強(qiáng)還可以改善一些與關(guān)系型索引有關(guān)的問題。
SQL Server 2005的完全文本索引特性是全新的,并且是重新編寫的。要獲得這個(gè)特性的信息,請(qǐng)閱讀Nimish Khanolkar的MSDN廣播文檔,介紹SQL Server 2005中的全文本查找。
XML是SQL Server 2005中另外一個(gè)在方式上發(fā)生了巨大轉(zhuǎn)變的內(nèi)容�,F(xiàn)在對(duì)于開發(fā)人員來(lái)說(shuō)有第一流的XML數(shù)據(jù)類型可用了。這個(gè)類型支持XQuery查詢語(yǔ)言,使用了這個(gè)類型的字段可以通過特殊格式的XML索引被索引到。要了解更多有關(guān)XML類型的信息,請(qǐng)查找MSDN 上的文章。
還有各種各樣的有關(guān)T-SQL索引命令的加強(qiáng)。也許最令人感興趣的就是新的“在線”索引類型,它允許數(shù)據(jù)庫(kù)管理員在不需要把用戶鎖到表外面的情況下執(zhí)行索引維護(hù)任務(wù)。這個(gè)很有可能標(biāo)記著數(shù)據(jù)庫(kù)管理員需要等到夜里3點(diǎn)才能打開維護(hù)窗口修正問題的狀況的終結(jié)!
3.對(duì)于表和字段的常見名字約束
問:什么是常見的對(duì)表和字段的名字約束?
解答:SQL Server 2000下的表和字段名稱有1到128字節(jié)的限制,并且遵循用于標(biāo)識(shí)的規(guī)則。
第一個(gè)字母必須是如下的一種:
· Unicode Standard 2.0中規(guī)定的字母。
Unicode對(duì)字母的定義包括:拉丁字母,從A到Z,除了來(lái)自其他語(yǔ)言的字母之外。
· 下劃線(_),at符號(hào)(@),或者數(shù)字符號(hào)(#)
分享:解讀為SQL Server數(shù)據(jù)庫(kù)傳數(shù)組參數(shù)的變通辦法最近一直在做Dnn模塊的開發(fā),過程中碰到這么一個(gè)問題,需要同時(shí)插入N條數(shù)據(jù),不想在程序里控制,但是SQL Sever又不支持?jǐn)?shù)組參數(shù).所以只能用變通的辦法了.利用SQL Server強(qiáng)大的字符串處理傳把數(shù)組格式化為類似1,2,3,4,5,6。 然后在存儲(chǔ)過程中用SubString配合CharI
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 詳解SQL命令大全--中文翻譯
- sqlserver2005自動(dòng)創(chuàng)建數(shù)據(jù)表和自動(dòng)添加某個(gè)字段索引
- 如何快速掌握一些異常精妙的"SQL"語(yǔ)句
- sql2005 日志清理 SQL2005壓縮清除日志的方法
- 四個(gè)語(yǔ)句幫你提高 SQL Server 的伸縮性
- SQL Server查詢語(yǔ)句的使用
- 解析MySQL實(shí)現(xiàn)SQL Server的sp_executesql
- 淺析SQL Server2005數(shù)字轉(zhuǎn)中文大寫字母
- SQL Server儲(chǔ)過程加密和解密原理深入分析
- SQL Server COALESCE()函數(shù)的創(chuàng)新應(yīng)用
猜你也喜歡看這些
- Mysql中文亂碼以及導(dǎo)出為sql語(yǔ)句和Excel問題解決方法[圖文]
- MySQL查詢優(yōu)化:LIMIT 1避免全表掃描提高查詢效率
- MYSQL索引無(wú)效和索引有效的詳細(xì)介紹
- sql語(yǔ)句:拷貝表,復(fù)制表
- 關(guān)于MySQL數(shù)據(jù)遷移--data目錄直接替換注意事項(xiàng)的詳解
- 如何修改mysql數(shù)據(jù)庫(kù)的max_allowed_packet參數(shù)
- MySQL前綴索引導(dǎo)致的慢查詢分析總結(jié)
- 擁有5星評(píng)級(jí)數(shù)據(jù)庫(kù)表結(jié)構(gòu) 如何才能更高效的使用?
- 更新text字段時(shí)出現(xiàn)Row size too large報(bào)錯(cuò)應(yīng)付措施
- MySQL數(shù)據(jù)庫(kù)備份和還原的常用命令
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索詳解Microsoft SQL Server數(shù)據(jù)庫(kù)開發(fā)問題
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-詳解Microsoft SQL Server數(shù)據(jù)庫(kù)開發(fā)問題
。