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

SQL Server 2008 VALUES 子句新用法:單一陳述式插入多列、建立內嵌結果集

     編輯:SQL Server 2008

一、單一 INSERT 插入多列 (Row Constructor)

CREATE TABLE Demo_Values (
    PKID int IDENTITY(1,1) PRIMARY KEY,
    DName Nvarchar(20), DCode NVarchar(30), DDate datetime
); GO

INSERT Demo_Values (DName,DCode,DDate) VALUES
('DemoA','AAA',GETDATE()),('DemoB','BBB',GETDATE()),('DemoC','CCC',GETDATE()),
('DemoD','DDD',GETDATE()),('DemoE','EEE',GETDATE()); GO
-- (5 row(s) affected)

二、VALUES 建立內嵌結果集 (Table Value Constructor)

無需建立實體表、暫存表或表值變數,即可在查詢中直接定義資料集:

SELECT DName, DCode, DDate
FROM (VALUES
    ('DemoA','AAA',GETDATE()),
    ('DemoB','BBB',GETDATE()),
    ('DemoC','CCC',GETDATE()),
    ('DemoD','DDD',GETDATE()),
    ('DemoE','EEE',GETDATE())
) AS Demo_Values (DName, DCode, DDate); GO
DName DCode DDate
DemoA AAA   2010-10-12 20:37:45.500
DemoB BBB   2010-10-12 20:37:45.500
DemoC CCC   2010-10-12 20:37:45.500
DemoD DDD   2010-10-12 20:37:45.500
DemoE EEE   2010-10-12 20:37:45.500

最後一行 AS Demo_Values (DName, DCode, DDate) 定義**別名與欄位名稱**,供外層 SELECT 使用。

應用場景

  • 測試資料快速產生、單元測試 Mock Data。
  • 小型查找表內嵌於查詢 (如狀態碼對照)。
  • 搭配 MERGE 的 USING 來源 (USING (VALUES ...) AS Src(...))。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved