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

Transact-SQL 速查手冊:DML/DDL/DCL/TCL、程序化邏輯、核心函數、系統視圖一站式參考

     編輯:關於SqlServer

語句分類速查表

類別關鍵字核心用途
DMLSELECT, INSERT, UPDATE, DELETE, MERGE, BULK INSERT, OUTPUT數據操縱
DDLCREATE/ALTER/DROP TABLE|VIEW|INDEX|PROCEDURE|FUNCTION|TRIGGER|SCHEMA|TYPE|ASSEMBLY|XML SCHEMA COLLECTION|FULLTEXT CATALOG|DATABASE|LOGIN|USER|ROLE|SERVER ROLE|AVAILABILITY GROUP|ENDPOINT|CREDENTIAL|CERTIFICATE|ASYMMETRIC KEY|SYMMETRIC KEY|SEQUENCE|SYNONYM|PARTITION FUNCTION|PARTITION SCHEME|RESOURCE POOL|WORKLOAD GROUP|SERVER AUDIT|DATABASE AUDIT SPECIFICATION|SERVER AUDIT SPECIFICATION|SEARCH PROPERTY LIST|SEMANTIC INDEX|COLUMN MASTER KEY|COLUMN ENCRYPTION KEY|EXTERNAL DATA SOURCE|EXTERNAL FILE FORMAT|EXTERNAL TABLE|EXTERNAL LIBRARY|EXTERNAL LANGUAGE|DATABASE SCOPED CREDENTIAL|EXTERNAL STREAM|EXTERNAL JOB|EXTERNAL RESOURCE POOL|EXTERNAL WORKLOAD GROUP|EXTERNAL AVAILABILITY GROUP|EXTERNAL ENDPOINT|EXTERNAL CERTIFICATE|EXTERNAL ASYMMETRIC KEY|EXTERNAL SYMMETRIC KEY|EXTERNAL MASTER KEY|EXTERNAL DATABASE SCOPED CREDENTIAL|EXTERNAL SEARCH PROPERTY LIST|EXTERNAL SEMANTIC INDEX|EXTERNAL COLUMN MASTER KEY|EXTERNAL COLUMN ENCRYPTION KEY|EXTERNAL SEQUENCE|EXTERNAL SYNONYM|EXTERNAL PARTITION FUNCTION|EXTERNAL PARTITION SCHEME|EXTERNAL RESOURCE POOL|EXTERNAL WORKLOAD GROUP|EXTERNAL AVAILABILITY GROUP|EXTERNAL ENDPOINT|EXTERNAL CERTIFICATE|EXTERNAL ASYMMETRIC KEY|EXTERNAL SYMMETRIC KEY|EXTERNAL MASTER KEY|EXTERNAL DATABASE SCOPED CREDENTIAL|EXTERNAL SEARCH PROPERTY LIST|EXTERNAL SEMANTIC INDEX|EXTERNAL COLUMN MASTER KEY|EXTERNAL COLUMN ENCRYPTION KEY|EXTERNAL SEQUENCE|EXTERNAL SYNONYM|EXTERNAL PARTITION FUNCTION|EXTERNAL PARTITION SCHEME對象定義
DCLGRANT, DENY, REVOKE權限控制
TCLBEGIN TRAN, COMMIT, ROLLBACK, SAVE TRAN, SET IMPLICIT_TRANSACTIONS, SET XACT_ABORT事務控制

程序化邏輯構造

-- 變量聲明
DECLARE @i INT = 0, @s NVARCHAR(100) = N'', @dt DATETIME2 = SYSUTCDATETIME();

-- 條件分支
IF @i > 0 BEGIN PRINT 'Positive'; END
ELSE IF @i < 0 BEGIN PRINT 'Negative'; END
ELSE BEGIN PRINT 'Zero'; END

-- CASE 表達式 (標量/搜索)
SELECT CASE WHEN JobLevel = 1 THEN Salary*1.08
            WHEN JobLevel = 2 THEN Salary*1.07
            ELSE Salary*1.05 END AS NewSalary
FROM Employees;

-- 循環
WHILE @i < 100
BEGIN
    SET @i += 1;
    IF @i % 7 = 0 CONTINUE;
    IF @i = 50 BREAK;
    PRINT @i;
END

-- 等待
WAITFOR DELAY '00:00:10';  -- 等待 10 秒
WAITFOR TIME '23:59:59';   -- 等待至指定時間

-- 錯誤處理 (SQL 2005+)
BEGIN TRY
    -- 高風險操作
    INSERT INTO dbo.T (PK) VALUES (1); -- 可能重複鍵
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE();
    THROW; -- 重拋 (2012+)
END CATCH

-- 動態 SQL (參數化)
DECLARE @Sql NVARCHAR(MAX) = N'SELECT * FROM dbo.T WHERE Id = @Id';
EXEC sp_executesql @Sql, N'@Id INT', @Id = 42;

核心函數分類速查 (高頻 80%)

分類代表函數典型用法
聚合COUNT, SUM, AVG, MIN, MAX, STDEV, VAR, STRING_AGG (2017+), GROUP_CONCAT (MySQL)統計分析
窗口ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD, FIRST_VALUE, LAST_VALUE, SUM() OVER, AVG() OVER分頁、Top-N、同比環比
字符串SUBSTRING, LEFT, RIGHT, CHARINDEX, PATINDEX, REPLACE, REPLICATE, REVERSE, UPPER, LOWER, LTRIM, RTRIM, TRIM (2017+), CONCAT, CONCAT_WS (2017+), STRING_SPLIT (2016+), STRING_ESCAPE, FORMAT, QUOTENAME文本處理、拆分、拼接
日期時間GETDATE, SYSDATETIME, SYSUTCDATETIME, DATEADD, DATEDIFF, DATEPART, DATENAME, DAY, MONTH, YEAR, EOMONTH (2012+), DATEFROMPARTS, DATETIME2FROMPARTS, SWITCHOFFSET, TODATETIMEOFFSET, AT TIME ZONE (2016+)時間運算、時區、構造
轉換CAST, CONVERT, TRY_CAST, TRY_CONVERT, PARSE, TRY_PARSE, FORMAT類型轉換、容錯
數學ABS, SIGN, ROUND, CEILING, FLOOR, POWER, SQRT, EXP, LOG, LOG10, PI, RAND, CRYPT_GEN_RANDOM, SIN, COS, TAN, ATAN, DEGREES, RADIANS計算、加密隨機
系統/元數據OBJECT_ID, OBJECT_NAME, OBJECT_SCHEMA_NAME, OBJECT_DEFINITION, COL_NAME, COL_LENGTH, INDEX_COL, TYPE_NAME, DB_ID, DB_NAME, FILE_ID, FILE_NAME, HOST_ID, HOST_NAME, APP_NAME, PROGRAM_NAME, CLIENT_NET_ADDRESS, ORIGINAL_LOGIN, CURRENT_USER, SESSION_USER, SYSTEM_USER, SUSER_SNAME, SUSER_ID, IS_SRVROLEMEMBER, IS_MEMBER, HAS_PERMS_BY_NAME, PERMISSIONS, fn_listextendedproperty元數據查詢、權限檢查、審計
JSON/XML (2016+)JSON_VALUE, JSON_QUERY, JSON_MODIFY, OPENJSON, ISJSON, JSON_PATH_EXISTS (2022+), FOR JSON AUTO/PATH, FOR XML AUTO/RAW/PATH/EXPLICIT, XQUERY (query/value/exist/nodes/modify)半結構化數據處理

系統視圖 / DMV / DMF 黃金組合 (運維必備)

領域核心視圖/函數典型查詢
性能/等待sys.dm_os_wait_stats, sys.dm_os_waiting_tasks, sys.dm_exec_requests, sys.dm_exec_query_stats, sys.dm_exec_procedure_stats, sys.dm_exec_trigger_stats, sys.dm_db_index_usage_stats, sys.dm_db_missing_index_*Top 等待、慢查詢、索引使用/缺失
內存/緩存sys.dm_os_buffer_descriptors, sys.dm_os_memory_clerks, sys.dm_os_memory_cache_entries, sys.dm_exec_cached_plans, sys.dm_exec_plan_attributesPLE、計劃緩存、內存消費者
I/O/存儲sys.dm_io_virtual_file_stats, sys.dm_io_pending_io_requests, sys.master_files, sys.database_files文件級延遲、吞吐、空間
併發/鎖sys.dm_tran_locks, sys.dm_tran_active_transactions, sys.dm_tran_database_transactions, sys.dm_os_spinlock_stats阻塞鏈、死鎖、長事務
安全/審計sys.server_principals, sys.database_principals, sys.server_permissions, sys.database_permissions, sys.sql_logins, fn_get_audit_file, sys.server_audits, sys.database_audit_specifications權限矩陣、審計日誌
高可用/復制sys.availability_groups, sys.availability_replicas, sys.dm_hadr_*, sys.replication_*, sys.dm_repl_*AG 狀態、復制延遲、同步健康度

常用設置選項 (SET/Database Scoped Configuration)

-- 會話級
SET NOCOUNT ON;              -- 抑制 DONE_IN_PROC 消息,減少網絡往返
SET XACT_ABORT ON;           -- 運行時錯誤自動回滾事務
SET DEADLOCK_PRIORITY LOW;   -- 犧牲當前會話避免死鎖
SET TRANSACTION ISOLATION LEVEL READ COMMITTED SNAPSHOT; -- 會話級 RCSI

-- 數據庫級 (2016+)
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 4;
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF;
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF;
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON;

版本特性里程碑 (快速定位可用功能)

版本標誌性特性
2000索引視圖、INSTEAD OF 觸發器、UDP、XML 初支持、復制增強
2005CTE、ROW_NUMBER/OVER、PIVOT/UNPIVOT、TRY/CATCH、XML 數據類型、CLR、Service Broker、鏡像、快照、SMO、SSIS/SSRS/SSAS
2008MERGE、稀疏列、TVP、日期時間新類型、空間、FILESTREAM、壓縮、資源調控器、CDC、管理數據倉庫、IntelliSense
2012AlwaysOn、Columnstore、OFFSET FETCH、SEQUENCE、THROW、CONTAINED DB、Semantic Search、Data Quality Services、Master Data Services
2014In-Memory OLTP (Hekaton)、Buffer Pool Extension、Delayed Durability、Encrypted Backup、Azure 集成
2016JSON、R Services、PolyBase、Query Store、Live Query Statistics、Temporal Tables、Dynamic Data Masking、Row-Level Security、Always Encrypted
2017Linux/Docker 支持、Graph DB、Adaptive Query Processing、Automatic Tuning、STRING_AGG、TRIM、CONCAT_WS
2019Big Data Clusters、Java/Spark 集成、Memory-Optimized TempDB Metadata、Accelerated Database Recovery、Verifiable Credentials、UTF-8 Collation
2022Parameter Sensitive Plan Optimization、Ledger、Azure Synapse Link、JSON_PATH_EXISTS、ISJSON、GENERATE_SERIES、DATETRUNC、DATE_BUCKET

總結

本手冊涵蓋 T-SQL 核心語法、程序化邏輯、高頻函數、系統視圖、設置選項、版本特性,**建議收藏離線備查**。實戰中請遵循「參數化、集合化、最小權限、可觀測」四大原則,配合 Query Store / Extended Events / 自動化巡檢構建現代化數據庫工程體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved