首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 實戰技巧大全:隨機排序、Log Shipping 故障、MCDBA 認證、SQL Mail、外網連線、數值比較、日期處理、資料移動六法

     編輯:關於SqlServer

1. 查詢結果隨機排序 / 取樣


-- 全表隨機
SELECT * FROM Northwind..Orders ORDER BY NEWID();

-- 隨機取 10 筆
SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID();

RAND() 查詢中只產生一次值,無法逐列隨機;NEWID() 每列產生唯一 GUID,達到真隨機。

2. Log Shipping (記錄傳送) 設定中斷殘留清理

錯誤 14261 (Primary 已存在) / 14426 (Monitor 已定義)。手動執行:


EXEC sp_delete_log_shipping_primary;
EXEC sp_delete_log_shipping_plan;
EXEC sp_delete_log_shipping_secondary;
EXEC sp_remove_log_shipping_monitor;

若備份失敗且日誌顯示 Backup can not be performed,檢查資料庫復原模式是否為 **完整 (FULL)**。

3. MCDBA (微軟認證資料庫管理員) 考試大綱速覽

  • 核心:SQL Server 管理 (70-228) + 設計 (70-229) + Windows 2000 Server (70-215) / .NET Server (70-275)。
  • 選修:資料倉儲 (70-019)、分散式應用 (70-015/155/175)、網路基礎 (70-216/276)。
  • 權益:TechNet/MSDN 折扣、SQL Server Magazine 免費訂閱、MCP 安全站台、PASS 會員優惠。

4. SQL Mail 設定完整流程 (SQL 2000)

  1. 安裝 SMTP 服務 (Win2K 自建或 iMail/Exchange)。
  2. 安裝 Outlook 2000 → 控制台「郵件」建立設定檔 myProfile (若無 Outlook 找不到郵件圖示)。
  3. Outlook 測試收發正常。
  4. SQL Server 服務啟動帳號 = 網域帳號 → 企業管理器 → 支援服務 → SQL Mail 屬性 → 選 myProfile → 測試成功。
  5. 授權應用連線帳號 (如 DbGuest) 執行 xp_sendmail (master..sysobjects → 擴展預存程序 → 權限)。

常用參數:@recipients (必填)、@subject, @message, @query (附查詢結果)、@attachments, @copy_recipients, @blind_copy_recipients。

5. 外網 IP 無法連線排查

  1. ping IP 失 → 硬體/路由/防火牆。
  2. ping Name 失 → DNS/Hosts。
  3. telnet IP 1433 失 → 服務未啟/TCP 未開/埠錯/防火牆。
  4. 伺服器網路工具:啟用 Named Pipes + TCP/IP,檢查埠 1433、可選「隱藏伺服器」。
  5. 用戶端網路工具:同樣啟用兩協定、埠一致、別名設定 (類 Hosts)。
  6. 驗證模式:企業管理器 → 安全性 → **SQL Server 和 Windows** → 重啟服務。
    註冊表兜底:HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode = 2。
  7. 登入失敗 → 補齊 BUILTIN\Administrators, Machine\Administrator 為 sysadmin。
  8. 逾時 → 企業管理器「工具/選項/進階/登入逾時」調大 (如 20 秒)。

6. SQL 數值大小比較與錯誤提示


DECLARE @Res VARCHAR(10);
SELECT @Res = CASE 
    WHEN (SELECT Value FROM T1 WHERE ID='2') > 
         (SELECT Value1+Value2 FROM T2 WHERE ID='2')
    THEN '錯誤' ELSE '正確' END;
SELECT @Res;

7. 日期時間插入 (無 TO_DATE)


CREATE TABLE Simp (Id INT, Dt DATETIME);
INSERT INTO Simp VALUES (100, '2005-03-23 11:23:25'); -- 直接字串隱含轉換
-- 解析順序受 SET DATEFORMAT 影響 (預設 mdy)
SET DATEFORMAT ymd; -- 年月日

8. 局域網 MSDE 實例不可見

  • 企業管理器 → 右鍵「新增 SQL Server 註冊」 → 瀏覽網路伺服器 → SQL 驗證 → 完成。
  • 純 MSDE 無 EM:用 ODBC/IP 直連、或註冊表修改 LoginMode、sp_addserver 定義遠端伺服器 (需重啟)。

9. 資料庫六種資料移動方法

方法工具/指令優點缺點/注意
1. DTS 導入/導出EM → 所有工作 → 匯入/匯出資料視覺化、多任務、可存套件排程外鍵須注意順序或分批
2. BCPbcp.exe 命令列效能最佳、低記憶體、跨版本非 GUI、僅文字檔↔表
3. 備份/還原BACKUP/RESTORE DATABASE完整保留結構/權限/索引/鍵需同名 DB 或強制還原改檔名
4. 脫離/附加檔案sp_detach_db / sp_attach_db / sp_attach_single_file_db極快、無日誌備份單檔附加丟失原日誌
5. 應用層 SQLINSERT...SELECT / SELECT...INTO靈活、可跨連結伺服器需網路佳、大量時慢
6. 複寫發佈/訂閱/散發近即時同步、異地災備最複雜、需 Agent/MSDTC、主鍵、text/image 用 WITH LOG

優化小撇步

  • 建表時主鍵/外鍵/索引腳本與建表分離,檔案群組放不同磁碟。
  • 複寫前提:SQL Agent + MSDTC 啟動、所有表有 PK、max text repl size 調大、代理帳號非 LocalSystem。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved