SQL Server是微軟公司開發(fā)的一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),以Transact_SQL作為它的數(shù)據(jù)庫查詢和編程語言。T-SQL是結(jié)構(gòu)化查詢語言SQL的一種,支持ANSI SQL-92標(biāo)準(zhǔn)。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比淇濱網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式淇濱網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋淇濱地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
SQL Server 采用二級安全驗(yàn)證、登錄驗(yàn)證及數(shù)據(jù)庫用戶帳號(hào)和角色的許可驗(yàn)證。SQL Server 支持兩種身份驗(yàn)證模式:Windows NT身份驗(yàn)證和SQL Server 身份驗(yàn)證。7.0版支持多種類型的角色,"角色"概念的引入方便了權(quán)限的管理,也使權(quán)限的分配更加靈活。
SQL Server為公共的管理功能提供了預(yù)定義的服務(wù)器和數(shù)據(jù)庫角色,可以很容易為某一特定用戶授予一組選擇好的許可權(quán)限。 SQL Server可以在不同的操作平臺(tái)上運(yùn)行,支持多種不同類型的網(wǎng)絡(luò)協(xié)議如TCP/IP、IPX/SPX、Apple Talk等。SQL Server在服務(wù)器端的軟件運(yùn)行平臺(tái)是Windows NT、Windows9x,在客戶端可以是Windows3.x、Windows NT、Windows9x,也可以采用其它廠商開發(fā)的系統(tǒng)如Unix、Apple Macintosh等。
微軟的SQL Server是一項(xiàng)完美的客戶/服務(wù)器系統(tǒng)。SQL Server需要安裝在Windows NT的平臺(tái)上,而Windows NT可以支持Intel 386,Power PC,MIPS,Alpha PC和RISC等平臺(tái),它使SQL Server具備足夠的威力和功能。
這里所有的文章所采用的數(shù)據(jù)庫應(yīng)用程序都是基于SQL Server之上的,采用ODBC及標(biāo)準(zhǔn)的SQL查詢,可以非常簡單的移植到任何一個(gè)支持ODBC的數(shù)據(jù)庫之上,如:Oracle,Informix,Db2和Access,在閱讀有關(guān)ASP數(shù)據(jù)庫編程技術(shù)之前,要確認(rèn)你至少熟悉一種數(shù)據(jù)庫管理系統(tǒng),并可以使用標(biāo)準(zhǔn)的SQL查詢語言操作數(shù)據(jù)庫。
SQL Server提供服務(wù)器端的軟件,這部分需要安裝在NT Server上,SQL Server的用戶端則可以安裝在許多用戶端PC系統(tǒng)中,Windows可以讓用戶端進(jìn)行數(shù)據(jù)庫的建立,維護(hù)及存取等操作,SQL Server可以最多定義32767個(gè)數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫中,可以定義20億個(gè)表格,每個(gè)表格可以有250個(gè)字段,每個(gè)表格的數(shù)據(jù)個(gè)數(shù)并沒有限制,每一個(gè)表格可以定義250個(gè)索引,其中有一個(gè)可以是Clustered索引。
SQL Server所使用的數(shù)據(jù)庫查詢語言稱為Transact-SQL,它是SQL Server的核心,Transact-SQL強(qiáng)化了原有的SQL關(guān)鍵字以進(jìn)行數(shù)據(jù)的存取,儲(chǔ)存及處理等功能,Transact-SQL擴(kuò)充了流程控制指定,可以使你方便的編寫功能強(qiáng)大的存儲(chǔ)過程,他們存放在服務(wù)器端,并預(yù)先編譯過,執(zhí)行速度非常塊,觸發(fā)是一種特殊的存儲(chǔ)過程,用來確保SQL Server數(shù)據(jù)庫引用的完整性,你可以建立插入,刪除和更新觸發(fā)以控制相關(guān)的表格中對數(shù)據(jù)列的插入,刪除和更新,你還可以使用規(guī)則(Rule),缺?。╠efault)以及限制(Constraints),來協(xié)助將新的數(shù)值套用到表格中去!
SQL SERVER的特點(diǎn)與評價(jià)
上手容易
話分兩頭,如果您的企業(yè)至今還未購置數(shù)據(jù)庫,其中一個(gè)主要的原因可能就是認(rèn)為它不好上手,那么,從SQLServer開始吧。畢竟,大多數(shù)的中小企業(yè)日常的數(shù)據(jù)應(yīng)用是建立在Windows平臺(tái)上的。由于SQLServer與Windows界面風(fēng)格完全一致,且有許多"向?qū)?Wizard)"幫助,因此易于安裝和學(xué)習(xí),有關(guān)SQLServer的資料、培訓(xùn)隨處可得,并且目前國內(nèi)具有MCDBA認(rèn)證的工程師不在少數(shù)。
從另一個(gè)角度來講,學(xué)習(xí)SQLServer是掌握其他平臺(tái)及大型數(shù)據(jù),如Oracle,Sybase,DB/2的基礎(chǔ)。因?yàn)檫@些大型數(shù)據(jù)庫對于設(shè)備、平臺(tái)、人員知識(shí)的要求往往較高,而并不是每個(gè)人都具備這樣的條件,且有機(jī)會(huì)去接觸它們。但有了SQLServer的基礎(chǔ),再去學(xué)習(xí)和使用它們就容易多了。IT行業(yè)的實(shí)踐經(jīng)驗(yàn)充分證明了這一點(diǎn)。
兼容性良好
由于今天Windows操作系統(tǒng)占領(lǐng)著主導(dǎo)地的位,選擇SQLServer一定會(huì)在兼容性方面取得一些優(yōu)勢。另外,SQLServer2000除了具有擴(kuò)展性,可靠性以外,還具有可以迅速開發(fā)新的因特網(wǎng)系統(tǒng)的功能。尤其是它可以直接存貯XML數(shù)據(jù),可以將搜索結(jié)果以XML格式輸出等特點(diǎn),有利于構(gòu)建了異構(gòu)系統(tǒng)的互操作性,奠定了面向互聯(lián)網(wǎng)的企業(yè)應(yīng)用和服務(wù)的基石。這些特點(diǎn)在.NET戰(zhàn)略中發(fā)揮著重要的作用。
電子商務(wù)
在使用由MicrosoftSQLServer2000關(guān)系數(shù)據(jù)庫引擎的情況下,XML數(shù)據(jù)可在關(guān)系表中進(jìn)行存儲(chǔ),而查詢則能以XML格式將有關(guān)結(jié)果返回。此外,XML支持還簡化了后端系統(tǒng)集成,并實(shí)現(xiàn)了跨防火墻的無縫數(shù)據(jù)傳輸。你還可以使用HypertextTransferProtocol(超文本傳輸協(xié)議,HTTP)來訪問SQLServer2000,以實(shí)現(xiàn)面向SQLServer2000數(shù)據(jù)庫的安全Web連接和無須額外編程的聯(lián)機(jī)分析處理(OLAP)多維數(shù)據(jù)集。
數(shù)據(jù)倉庫
MicrosoftSQLServer2000非常明顯的改進(jìn)就是增加了OLAP(聯(lián)機(jī)分析處理)功能,這可以讓很多中小企業(yè)用戶也可以使用數(shù)據(jù)倉庫的一些特性進(jìn)行分析。OLAP可以通過多維存儲(chǔ)技術(shù)對大型、復(fù)雜數(shù)據(jù)集執(zhí)行快速、高級的分析工作。數(shù)據(jù)挖掘功能能夠揭示出隱藏在大量數(shù)據(jù)中的傾向及趨勢,它允許組織或機(jī)構(gòu)最大
限度的從數(shù)據(jù)中獲取價(jià)值。通過對現(xiàn)有數(shù)據(jù)進(jìn)行有效分析,這一功能可以對未來的趨勢進(jìn)行預(yù)測。
增強(qiáng)的在線商務(wù)
MicrosoftSQLServer2000簡化了管理、優(yōu)化工作,并且增強(qiáng)了迅速、成功的部署在線商務(wù)應(yīng)用程序所需的可靠性和伸縮性。其中,用以提高可靠性的特性包括日志傳送、在線備份和故障切換群集。在伸縮性方面的改進(jìn)包括對多達(dá)32顆CPU和64GBRAM的支持。通過自動(dòng)優(yōu)化和改進(jìn)后的管理特性--諸如數(shù)據(jù)文件尺寸的自動(dòng)管理、基于向?qū)У臄?shù)據(jù)庫拷貝、自動(dòng)內(nèi)存管理和簡化的故障切換群集安裝與管理,在線商務(wù)應(yīng)用程序能夠被迅速部署并有效管理。
利于構(gòu)筑"敏捷性商務(wù)"
所謂"敏捷性商務(wù)"就是能夠打破內(nèi)部和外部的商業(yè)界限,對迅速改變的環(huán)境做出快速反應(yīng)。。微軟已經(jīng)與關(guān)鍵的合作伙伴建立起了戰(zhàn)略關(guān)系,創(chuàng)造出了能夠與許多供應(yīng)商的產(chǎn)品實(shí)現(xiàn)整合的解決方案,因而企業(yè)用戶并不需要做出"要么完全接受,要么全部不要"的承諾。在部署解決方案的過程中,企業(yè)用戶不一定要拆除原有的設(shè)備從頭。敏捷商務(wù)讓企業(yè)用戶能夠充分利用現(xiàn)有的系統(tǒng),自主決定所需的硬件和軟件解決方案以及由誰來提供,伸縮自如、游刃有余。
-------------------------------------
現(xiàn)在的數(shù)據(jù)庫:oracle 如日中天
sybase 情況不妙
sqlserver 馬馬忽忽
if exists(Select name from sysobjects where name='Sp_Page')
drop proc Sp_Page
go
Create PROCEDURE Sp_Page
(
@TableName varchar(50), --表名
@ReFieldsStr varchar(200) = '*', --字段名(全部字段為*)
@OrderString varchar(200), --排序字段(必須!支持多字段不用加order by)
@WhereString varchar(500) =N'', --條件語句(不用加where)
@PageSize int, --每頁多少條記錄
@PageIndex int = 1 , --指定當(dāng)前為第幾頁
@TotalRecord int output --返回總記錄數(shù)
)
AS
BEGIN
--處理開始點(diǎn)和結(jié)束點(diǎn)
Declare @StartRecord int;
Declare @EndRecord int;
Declare @TotalCountSql nvarchar(500);
Declare @SqlString nvarchar(2000);
set @StartRecord = (@PageIndex-1)*@PageSize + 1
set @EndRecord = @StartRecord + @PageSize - 1
SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--總記錄數(shù)語句
SET @SqlString = N'(select row_number() over (order by '+ @OrderString +') as rowId,'+@ReFieldsStr+' from '+ @TableName;--查詢語句
--
IF (@WhereString! = '' or @WhereString!=null)
BEGIN
SET @TotalCountSql=@TotalCountSql + ' where '+ @WhereString;
SET @SqlString =@SqlString+ ' where '+ @WhereString;
END
--第一次執(zhí)行得到
--IF(@TotalRecord is null)
-- BEGIN
EXEC sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--返回總記錄數(shù)
-- END
----執(zhí)行主語句
set @SqlString ='select * from ' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' + ltrim(str(@EndRecord));
Exec(@SqlString)
END
go
調(diào)用以上存儲(chǔ)過程可以實(shí)現(xiàn)分頁效果,樓主應(yīng)該會(huì)使用存儲(chǔ)過程吧?關(guān)鍵字exec.至于表有沒有ID是沒問題的,order by隨便你選一列就OK.建議樓主用比較新版本的MSSQL 例如2008,7.0這個(gè)版本太舊了..
1.用"a"是為了方便你輸入,a就是authors,你不用a也可以,但用到authors 的地方你都得輸這個(gè)字段,感覺麻煩。“authors as a ”的意思就是用 a替代 authors.
2.join 就是進(jìn)行連接。
jion 語句有三種,inner join, left outer join 和 right outer join 都可以簡寫,分別為jion,left join,right jion。
jion語句可以用來組合兩個(gè)表中的記錄,只要在公共字段之中有相符的值即可,該語句聯(lián)合兩個(gè)表查詢得到的結(jié)果是可以添加新的數(shù)據(jù),可以把它看成將兩個(gè)具有相關(guān)內(nèi)容的表聯(lián)接在一起新生成的表,而一般的select 語句沒有這個(gè)功能。
1) 內(nèi)連接,inner join ... on
語句格式:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)) INNER JOIN 表4 ON Member.字段號(hào)=表4.字段號(hào)) INNER JOIN 表X ON Member.字段號(hào)=表X.字段號(hào)
例子:
SELECT *
FROM (((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.Wedlock=Wedlock.Wedlock
ORDER BY MemberDate DESC
內(nèi)連接的功能是,把兩個(gè)表相關(guān)聯(lián)的記錄列出來,必須是相關(guān)聯(lián)的記錄。
2) 左外連接,left outer join ... on
語句格式:
FROM [表名1] LEFT JOIN [表名2]
ON [表名1.字段A] 〈關(guān)系運(yùn)算符〉[表名2.字段B]
其實(shí)LEFT JOIN 的功能就是將LEFT左邊的表名1中的所有記錄全部保留,而將右邊的表名2中的字段B與表名1.字段A相對應(yīng)的記錄顯示出來(當(dāng)使用SELECT * 時(shí))。而RIGHT JOIN 和LEFT JOIN 相反。
外連接的功能是,把LEFT左邊的表中的所有記錄保留,而右邊表只保留相關(guān)聯(lián)的記錄,也就是先執(zhí)行一次INNER JOIN,然后把LEFT左邊的表中的與右邊表沒有任何關(guān)聯(lián)的記錄也保留,而右邊表的字段為null.
3) 右外連接,right outer join ... on
與 left join左右相反。
4) 全連接,full join ... on(不常使用,只能用于outer)
功能結(jié)合了以上三種聯(lián)軍,先執(zhí)行一次inner join,然后把兩個(gè)表的多余字段都保留,但連接的對應(yīng)字段為null.
如果想將幾個(gè)表聯(lián)接起來,在JOIN操作中我們可以進(jìn)行嵌套操作,有三個(gè)表:表1、表2、表3,現(xiàn)在將三個(gè)表聯(lián)接起來:
FROM (表1 INNER JOIN 表2 ON 表1.序號(hào)=表2.序號(hào))
INNER JOIN 表3 ON 表1.序號(hào)=表3.序號(hào)
當(dāng)前名稱:公共sqlserver,公共管理
標(biāo)題網(wǎng)址:http://m.kartarina.com/article14/dseepge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App開發(fā)、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)