IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)MSSQL → 在 SQL Server 數(shù)據(jù)庫(kù)開(kāi)發(fā)中的十大問(wèn)題

在 SQL Server 數(shù)據(jù)庫(kù)開(kāi)發(fā)中的十大問(wèn)題

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

SQL Server中進(jìn)行開(kāi)發(fā)會(huì)讓你身處險(xiǎn)地,并且尋找快速解決方案。我們編輯了前十名關(guān)于SQL Server開(kāi)發(fā)的常見(jiàn)問(wèn)題。對(duì)常見(jiàn)的針對(duì)表和字段的名字約束進(jìn)行探究。學(xué)習(xí)如何解決并發(fā)問(wèn)題,并且在不了解T-SQL的情況下編寫(xiě)存儲(chǔ)過(guò)程。查看這些解決方案的快速參考,并且了解更多內(nèi)容。

在SQL Server開(kāi)發(fā)問(wèn)題中你可能會(huì)問(wèn)到的十個(gè)問(wèn)題:

1、什么是常見(jiàn)的對(duì)表和字段的名字約束?

2、有沒(méi)有可能在不了解T-SQL的情況下編寫(xiě)存儲(chǔ)過(guò)程

3、T-SQL 中如何比較CLR 存儲(chǔ)過(guò)程和函數(shù)的性能?

4、我如何在一個(gè)存儲(chǔ)過(guò)程中使用另一個(gè)存儲(chǔ)過(guò)程產(chǎn)生的結(jié)果?

5、我如何解決SQL Server 2005的并發(fā)問(wèn)題?

6、在SQL Server 2005中用什么工具替代了查詢分析器?

7、你能提供一些有關(guān)SQL 和T-SQL的詳細(xì)信息嗎?

8、SQL Server 2005 有沒(méi)有新的索引類型?

9、我如何創(chuàng)建一個(gè)腳本在表中進(jìn)行選擇?

10、我如何列出那些沒(méi)有記錄的數(shù)據(jù)庫(kù)表?

對(duì)于表和字段的常見(jiàn)名字約束

專家回答:

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中以這些符號(hào)作為標(biāo)識(shí)符的開(kāi)始具有特殊的含義。一個(gè)以at符號(hào)(@)開(kāi)頭的標(biāo)識(shí)符表示一個(gè)本地的變量或者參數(shù)。一個(gè)以數(shù)字符號(hào)(#)開(kāi)頭的標(biāo)識(shí)符代表一個(gè)臨時(shí)表或者過(guò)程。一個(gè)以兩個(gè)數(shù)字符號(hào)(##)開(kāi)頭的標(biāo)識(shí)符標(biāo)識(shí)的是一個(gè)全局臨時(shí)對(duì)象。一些Transact-SQL函數(shù)的名字以兩個(gè)at符號(hào)(@@)開(kāi)頭。為了避免與這些函數(shù)混淆,推薦你不要使用兩個(gè)at符號(hào)(@@)開(kāi)頭的標(biāo)識(shí)符。接下來(lái)的字母可以是以下的任意幾種:

Unicode Standard 2.0定義的字母

來(lái)自基礎(chǔ)拉丁文或者其他語(yǔ)音的十進(jìn)制數(shù)字

at符號(hào)(@),美元符號(hào)($),數(shù)字符號(hào)(#),或者下劃線

標(biāo)識(shí)符絕對(duì)不能是Transact-SQL的保留字。SQL Server保留了一些大寫(xiě)和小寫(xiě)的保留字。內(nèi)建的空間或者特殊的字母都不允許出現(xiàn),盡管你可以在好的老版本的Northwind中看到它們包含了內(nèi)建的空間。你必須通過(guò)把它們括在括號(hào)中才可以訪問(wèn)。

不具有任何T-SQL知識(shí)的情況下編寫(xiě)SQL Server2005存儲(chǔ)過(guò)程嗎?

作為過(guò)去幾年里面微軟試圖用SQL Server 2005的.net集成來(lái)稱霸市場(chǎng)的野心的結(jié)果,許多程序員都認(rèn)為創(chuàng)建SQL Server存儲(chǔ)過(guò)程不再必需T-SQL了。不幸的是(或者并非如此,這根據(jù)你的觀點(diǎn)),這并不全是事實(shí)。在技術(shù)上是可以在不了解T-SQL的情況下創(chuàng)建存儲(chǔ)過(guò)程的,但是沒(méi)有T-SQL的話則無(wú)法訪問(wèn)任何的數(shù)據(jù)。

在CLR存儲(chǔ)過(guò)程內(nèi)部進(jìn)行數(shù)據(jù)訪問(wèn),是通過(guò)使用標(biāo)準(zhǔn)的ADO.NET類來(lái)完成的。開(kāi)發(fā)人員會(huì)在應(yīng)用程序?qū)影l(fā)現(xiàn)很多同樣的沒(méi)有用處的數(shù)據(jù)訪問(wèn)代碼,這些代碼會(huì)很輕易地轉(zhuǎn)移到SQLCLR例程中去。當(dāng)中間層的這些ADO.NET類需要使用T-SQL來(lái)訪問(wèn)數(shù)據(jù)的時(shí)候,在 CLR主機(jī)提供的環(huán)境中就會(huì)使用同樣的類。

我要強(qiáng)調(diào)的是,從技術(shù)角度來(lái)說(shuō),不使用T-SQL來(lái)編寫(xiě)存儲(chǔ)過(guò)程是可能的。那么有沒(méi)有理由這么做呢?一種情況就是這是一個(gè)用來(lái)從普通文件或者網(wǎng)絡(luò)服務(wù)中檢索數(shù)據(jù)的CLR存儲(chǔ)過(guò)程,并將數(shù)據(jù)格式設(shè)置為行集。這里可能就會(huì)用到不需要T-SQL的操作——但是這并不是對(duì)T -SQL存儲(chǔ)過(guò)程能力的一個(gè)很好的比喻。

CLR存儲(chǔ)過(guò)程vs. T-SQL存儲(chǔ)過(guò)程

CLR存儲(chǔ)過(guò)程和函數(shù)與T-SQL存儲(chǔ)過(guò)程和函數(shù)相比,性能如何?

專家回答:

這里是用來(lái)比較T-SQL例程和CLR例程性能的一種常用的規(guī)則:用你的數(shù)據(jù),在你的服務(wù)器上,測(cè)試兩套配置,看看哪一個(gè)比較好。 就是說(shuō),許多人都運(yùn)行過(guò)性能測(cè)試,一般的結(jié)果就是T-SQL在標(biāo)準(zhǔn)的CRUD(創(chuàng)建、讀取、更新、刪除)操作上表現(xiàn)要比好一點(diǎn),而在復(fù)雜數(shù)學(xué)、字符串賦值和其他的超過(guò)數(shù)據(jù)訪問(wèn)的任務(wù)上,則是CLR的性能表現(xiàn)更好一點(diǎn)。 SQL Server 的專家Gustavo Larriera編輯了如下一些關(guān)于這個(gè)主題的有用鏈接:

在 SQL Server 2005中使用CLR Integration。

簡(jiǎn)單介紹在 SQL Server 2005中的 CLR Integration。

在 SQL Server 2005中對(duì)CLR 和T-SQL做出選擇。

介紹 SQL Server 2005中的 CLR Integration。

SQL Server 閑談: SQL Server 2005 Beta 2 CLR問(wèn)題與回答。

數(shù)據(jù)庫(kù)管理員的防御.NET。 ·用戶自定義函數(shù)的性能比較。

如何在一個(gè)存儲(chǔ)過(guò)程中使用另一個(gè)存儲(chǔ)過(guò)程的結(jié)果

專家回答:

只要存儲(chǔ)過(guò)程只產(chǎn)生了一個(gè)單個(gè)的結(jié)果,要在另外一個(gè)存儲(chǔ)過(guò)程中使用這個(gè)存儲(chǔ)過(guò)程產(chǎn)生的輸出,這個(gè)技術(shù)是非常直接的。這個(gè)技術(shù)就是使用一個(gè)臨時(shí)表來(lái)裝載存儲(chǔ)過(guò)程的巨額iguo,然后通過(guò)INSERT EXEC語(yǔ)句來(lái)執(zhí)行這個(gè)過(guò)程并保存結(jié)果。一旦結(jié)果保留在臨時(shí)表中了,他們就可以像使用其它表數(shù)據(jù)一樣來(lái)使用它了。 這里是我們可能會(huì)復(fù)用的一個(gè)過(guò)程例子:

CREATE PROC usp_Demo_AllAuthors as

select * from pubs..authors

GO

關(guān)鍵詞標(biāo)簽:SQL Server,數(shù)據(jù)庫(kù)

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法