sqlserver2008技術內幕
1. 初學者學sql 2008 看什麼書好
入門的書我就不說了。推薦幾本相當不錯的,等你到了一定階段看一看會有很大提升:
《sql
server
2005
技術內幕:T-SQL查詢》
《sql
server
2005
技術內幕:T-SQL編程》
2. sqlserver2008的數據怎麼被封
1 把問題資料庫備份後直接刪除
停掉SQLSERVER服務,把伺服器上出問題的資料庫, 假設名稱為 ErrorDB的資料庫文件及日誌文件備份到其他目錄,然後直接將其刪除,把其資料庫文件及日誌文件也刪除
2 新建同名資料庫
啟動SQLSERVER服務,新建同名資料庫ErrorDB,文件目錄和日誌和原來一致
3 用備份的資料庫文件替換新的資料庫文件
停掉SQLSERVER服務,把備份的資料庫文件替換新的資料庫文件(只替換資料庫文件,不替換日誌文件)
啟動SQLSERVER服務,打開資料庫,這時資料庫應該是不能訪問的
-------------------設置應急模式、單用戶模式、檢查修復數據,取消單用戶模式----------------------
4 將資料庫設置為應急狀態
3. sqlserver有哪些書
你好,有《Microsoft SQL Server 2008技術內幕:T-SQL語言基礎》,Itzik Ben-Gan著,成保棟、張昱譯,電子工業出版社出版。
適合零基礎的人學習T-SQL。看完以後,還可以看該系列的後兩本《Microsoft SQL Server 2008技術內幕:T-SQL查詢》和《Inside Microsoft SQL Server 2008 T-SQL Programming》。三本都看完基本就是大俠了。
這三本在網上都有PDF下載,這是我的個人建議,希望可以幫助到你
4. SQLServer2008管理員必備指南的編輯推薦
《SQL Server 2008管理員必備指南》教你全面掌握SQL Server 2008的必備指南!
這本實用指南講述了SQL Server 2008日常管理的工作。使用快速參考表、指令和列表聚焦核心的支持與維護任務。無論您是學生還是資料庫領域的從業人員,都可從《SQL Server 2008管理員必備指南》獲得解決問題和完成工作所需的信息。
《SQL Server 2008管理員必備指南》重要主題:
規劃、部署和配置SQL Server 2008
管理伺服器,管理外圍安全、訪問及網路配置
導入、導出、轉換和復制數據
使用SQL Server Management Studio執行主要的管理任務
操作架構、表、索引和視圖
進行自動化維護和實現基於策略的管理
監視伺服器活動並優化性能
管理日誌傳送和資料庫鏡像
執行備份和還原
《微軟技術叢書》包括以下幾個子系列
從入門到精通
適舍新手程序員的實用教程
側重於基礎技術和特徵
提供範例文件
技術內幕
權威必備的參考大全
包含豐富、實用的範例代碼
幫助讀者熟練掌握微軟技術
高級編程
側重於高級特性、技術和解決問題
包含豐富適用性強的范倒代碼
幫助讀者精通微軟技術
精通&寶典
著重剖析應用技巧以幫助提高工作效率
主題包括辦公應用和開發工具
認證考試教材
完全根據考試要求來闡述每一個知識點
提供可供搜索的Ebook(英文版)和訓練題
提供實際場景案例分析和故障診斷實驗
SQL Server專家的嘔心力作,資料庫管理員的實戰寶典,全面、深入地剖析SQL Server2008新特性,結構獨特,實例豐富,操作性強。
5. sql server 小白應該看哪幾本書直到學精通呢分別說出每本書的作用。望回答詳細,有
1、sqlserver從入門到精通(其實入門的書很多,大同小異,就是叫你知道基本語法,基本的作用等)
2、sqlserver 企業級平台管理實踐(徐海蔚),深入的介紹下整個的sql,強烈推薦
3、sqlserver 技術內幕(2005,2008,感覺05的寫的好點,可以看05的,共四本)
6. 誰有Microsoft SQL Server 2008技術內幕文檔
http://technet.microsoft.com/zh-cn/sqlserver/default.aspx
7. sqlserver 2008存儲過程 加密 為什麼加密
觸發器的概念及作用 觸發器是一種特殊類型的存儲過程,它不同於我們前面介紹過的存儲過程。觸發器主要是通過事件進行觸發而被執行的,而存儲過程可以通過存儲過程名字而被直接調用。當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,SQL Server 就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。 觸發器的主要作用就是其能夠實現由主鍵和外鍵所不能保證的復雜的參照完整性和數據的一致性。除此之外,觸發器還有其它許多不同的功能: (1) 強化約束(Enforce restriction) 觸發器能夠實現比CHECK 語句更為復雜的約束。 (2) 跟蹤變化Auditing changes 觸發器可以偵測資料庫內的操作,從而不允許資料庫中未經許可的指定更新和變化。 (3) 級聯運行(Cascaded operation)。 觸發器可以偵測資料庫內的操作,並自動地級聯影響整個資料庫的各項內容。例如,某個表上的觸發器中包含有對另外一個表的數據操作(如刪除,更新,插入)而該操作又導致該表上觸發器被觸發。 (4) 存儲過程的調用(Stored procere invocation)。 為了響應資料庫更新觸,發器可以調用一個或多個存儲過程,甚至可以通過外部過程的調用而在DBMS( 資料庫管理系統)本身之外進行操作。 由此可見,觸發器可以解決高級形式的業務規則或復雜行為限制以及實現定製記錄等一些方面的問題。例如,觸發器能夠找出某一表在數據修改前後狀態發生的差異,並根據這種差異執行一定的處理。此外一個表的同一類型(INSERT、 UPDATE、 DELETE)的多個觸發器能夠對同一種數據操作採取多種不同的處理。 總體而言,觸發器性能通常比較低。當運行觸發器時,系統處理的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內存中也不在資料庫設備上,而刪除表和插入表總是位於內存中。可見觸發器所參照的其它表的位置決定了操作要花費的時間長短。 觸發器的種類 SQL Server 2000 支持兩種類型的觸發器:AFTER 觸發器和INSTEAD OF 觸發器。其中AFTER 觸發器即為SQL Server 2000 版本以前所介紹的觸發器。該類型觸發器要求只有執行某一操作(INSERT UPDATE DELETE) 之後,觸發器才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個觸發器。對於AFTER 觸發器,可以定義哪一個觸發器被最先觸發,哪一個被最後觸發,通常使用系統過程sp_settriggerorder 來完成此任務。 INSTEAD OF 觸發器表示並不執行其所定義的操作(INSERT、 UPDATE、 DELETE),而僅是執行觸發器本身。既可在表上定義INSTEAD OF 觸發器,也可以在視圖上定義INSTEAD OF 觸發器,但對同一操作只能定義一個INSTEAD OF 觸發器。 請參考
8. SQL server從入門到精通都有哪些經典書籍
1、sqlserver從入門到精通(其實入門的書很多,大同小異,就是叫你知道基本語法,基本的作用等)
2、sqlserver 企業級平台管理實踐(徐海蔚),深入的介紹下整個的sql,強烈推薦
3、sqlserver 技術內幕(2005,2008,感覺05的寫的好點,可以看05的,共四本)!
9. sql取各個欄目最新的幾條信息
--查每個分組前N條記錄
--> 生成測試數據: #T
IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
CREATE TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME)
INSERT INTO #T
SELECT '001',1,'鄒建','深入淺出SQLServer2005開發管理與應用實例','2008-05-10' UNION ALL
SELECT '002',1,'胡百敬','SQLServer2005性能調校','2008-03-22' UNION ALL
SELECT '003',1,'格羅夫Groff.J.R.','SQL完全手冊','2009-07-01' UNION ALL
SELECT '004',1,'KalenDelaney','SQLServer2005技術內幕存儲引擎','2008-08-01' UNION ALL
SELECT '005',2,'Alex.Kriegel.Boris.M.Trukhnov','SQL寶典','2007-10-05' UNION ALL
SELECT '006',2,'飛思科技產品研發中心','SQLServer2000高級管理與開發','2007-09-10' UNION ALL
SELECT '007',2,'胡百敬','SQLServer2005資料庫開發詳解','2008-06-15' UNION ALL
SELECT '008',3,'陳浩奎','SQLServer2000存儲過程與XML編程','2005-09-01' UNION ALL
SELECT '009',3,'趙松濤','SQLServer2005系統管理實錄','2008-10-01' UNION ALL
SELECT '010',3,'黃占濤','SQL技術手冊','2006-01-01'
--SQL查詢如下:
--按GID分組,查每個分組中Date最新的前2條記錄
--1.欄位ID唯一時:
SELECT * FROM #T AS T WHERE ID IN(SELECT TOP 2 ID FROM #T WHERE GID=T.GID ORDER BY Date DESC)
--2.如果ID不唯一時:
SELECT * FROM #T AS T WHERE 2>(SELECT COUNT(*) FROM #T WHERE GID=T.GID AND Date>T.Date)
--SQL Server 2005 使用新方法
--3.使用ROW_NUMBER()進行排位分組
SELECT ID,GID,Author,Title,Date
FROM
(
SELECT rid=ROW_NUMBER() OVER(PARTITION BY GID ORDER BY Date DESC),*
FROM #T
) AS T
WHERE rid<=2
--4.使用APPLY
SELECT DISTINCT b.*
FROM #T AS a
CROSS APPLY
(
SELECT TOP(2) * FROM #T WHERE a.GID=GID ORDER BY Date DESC
) AS b
--結果
/*
ID GID Author Title Date
---- ----------- ----------------------------- --------------------------------------- -----------------------
003 1 格羅夫Groff.J.R. SQL完全手冊 2009-07-01 00:00:00.000
004 1 KalenDelaney SQLServer2005技術內幕存儲引擎 2008-08-01 00:00:00.000
005 2 Alex.Kriegel.Boris.M.Trukhnov SQL寶典 2007-10-05 00:00:00.000
007 2 胡百敬 SQLServer2005資料庫開發詳解 2008-06-15 00:00:00.000
009 3 趙松濤 SQLServer2005系統管理實錄 2008-10-01 00:00:00.000
010 3 黃占濤 SQL技術手冊 2006-01-01 00:00:00.000
(6 行受影響)
*/
--得到每組前幾條數據
--假設每組Col1中, Col3不會重復
--建立測試環境
Create Table TEST
(Col1 Varchar(10),
Col2 Varchar(10),
Col3 Int)
--插入數據
Insert TEST Select 'BD1V','Label', 4
Union All Select 'BD1V', 'BATT', 2
Union All Select 'BD1V', 'ODD', 3
Union All Select 'BD1V', 'HDD', 5
Union All Select 'BD1V', 'LCD', 1
Union All Select 'BD1W','HDD', 3
Union All Select 'BD1W','RAM', 8
Union All Select 'BD1W','TP CABLE', 5
Union All Select 'BD1W','LCD', 6
Union All Select 'BD1W','Label', 2
Union All Select 'BL3', 'LCD CABLE', 7
Union All Select 'BL3', 'LABEL', 6
Union All Select 'BL3', 'LCD', 5
Union All Select 'BL3', 'RAM', 1
Union All Select 'BL3D', 'Label', 4
GO
--測試
--方法一:
Select Col1, Col2, Col3 From TEST A
Where (Select Count(*) From TEST Where Col1 = A.Col1 And Col3 > A.Col3) < 3
Order By Col1, Col3 Desc
--方法二:
Select Col1, Col2, Col3 From TEST A
Where Exists (Select Count(*) From TEST Where Col1 = A.Col1 And Col3 > A.Col3 Having Count(*) < 3)
Order By Col1, Col3 Desc
--方法三:
Select Col1, Col2, Col3 From TEST A
Where Col3 In (Select TOP 3 Col3 From TEST Where Col1 = A.Col1 Order By Col3 Desc)
Order By Col1, Col3 Desc
GO
--刪除測試環境
Drop Table TEST
--結果
/*
Col1 Col2 Col3
BD1V HDD 5
BD1V Label 4
BD1V ODD 3
BD1W RAM 8
BD1W LCD 6
BD1W TP CABLE 5
BL3 LCD CABLE 7
BL3 LABEL 6
BL3 LCD 5
BL3D Label 4
*/
10. sqlserver2008為列取別名的問題
這是sql在sqlserver中物理查詢順序的問題,看下圖
where字句會在select之前執行,那麼自然無法知道select中的列別名A到底是什麼東西,它只會檢查A到底是不是AL_ReturnApply的列名,如果不是那麼就會編譯出錯,關於物理查詢順序,在sql2005(8)技術內幕的書中都有講到