茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675218 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
sshot-IntelSSD_D-2.png

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2013/12/26 9:19:12

使用 INSERT 與 SELECT 加入資料列

SQL Server 2008 R2

您可以透過下列方式使用 INSERT 與 SELECT 陳述式將資料列加入資料表:

  • 使用 INSERT 陳述式直接指定值或從子查詢指定值。

  • 使用含有 INTO 子句的 SELECT 陳述式。

使用 INSERT


INSERT 陳述式可新增一或多個資料列到資料表中。簡化後的 INSERT 具有下列格式:

INSERT [INTO] table_or_view [(column_list)] data_values

INSERT 陳述式會將 data_values 視為一或多個資料列,插入至指定資料表或檢視中。 column_list 是以逗號分隔的資料行名稱清單,可用來指定提供資料的資料行。若未指定 column_list,便由資料表或檢視的所有資料行來接收資料。

column_list 並未指定資料表或檢視中的所有資料行時,則會將預設值 (若資料行有定義預設值) 或 NULL 插入未在清單中指定的資料行中。資料行清單中未指定的所有資料行都必須允許 Null 值或是指派預設值。

因為 SQL Server Database Engine 會為下列類型的資料行產生值,所以 INSERT 陳述式不會為這些資料行指定值:

  • 具有產生資料行值之 IDENTITY 屬性的資料行。

  • 使用 NEWID 函數來產生唯一 GUID 值而具有預設的資料行。

  • 計算資料行。

    計算資料行是虛擬資料行,在定義上是由 CREATE TABLE 陳述式中的一或多個其他資料行所計算出來的運算式,例如:




    CREATE TABLE TestTable
    (ColA INT PRIMARY KEY,
    ColB INT NOT NULL,
    ColC AS (ColA + ColB) * 2);

下列範例顯示如何將資料列插入含有會自動產生值或具有預設值的資料行之資料表中。 INSERT 陳述式會插入包含部份 (而非全部) 資料行值的資料列。在最後一個 INSERT 陳述式中,並未指定任何資料行,只插入預設值。



USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
DROP TABLE dbo.T1;
GO
CREATE TABLE dbo.T1
(
column_1 AS 'Computed column ' + column_2,
column_2 varchar(30)
CONSTRAINT default_name DEFAULT ('my column default'),
column_3 rowversion,
column_4 varchar(40) NULL
);
GO
INSERT INTO dbo.T1 (column_4)
VALUES ('Explicit value');
INSERT INTO dbo.T1 (column_2, column_4)
VALUES ('Explicit value', 'Explicit value');
INSERT INTO dbo.T1 (column_2)
VALUES ('Explicit value');
INSERT INTO T1 DEFAULT VALUES;
GO
SELECT column_1, column_2, column_3, column_4
FROM dbo.T1;
GO

使用含有 VALUE 子句與 SELECT 子查詢的 INSERT

提供的資料值必須與資料行清單相符。資料值的數目必須與資料行的數目相同,且每個資料值必須符合對應資料行的資料類型、精確度 (Precision) 與小數位數 (Scale)。您可以利用下列方式指定資料值:

  • 使用 VALUES 子句來指定一個資料列的資料值。例如:



    INSERT INTO MyTable (PriKey, Description)
    VALUES (123, 'A description of part 123.');

    如需詳細資訊,請參閱< 使用 INSERT 和 Values 插入資料列>。

  • 使用 SELECT 子查詢來指定一或多個資料列的資料值,例如:



    INSERT INTO MyTable (PriKey, Description)
    SELECT ForeignKey, Description
    FROM SomeView;

    如需詳細資訊,請參閱< 使用 INSERT 和 SELECT 子查詢插入資料列

搭配 INTO 使用 SELECT

若要利用其他資料表的值建立新資料表,您可以使用 SELECT INTO。例如:



SELECT LastName, FirstName, Phone
INTO dbo.PhoneList492
FROM dbo.Customers
WHERE Phone LIKE '492%'

如需詳細資訊,請參閱< 使用 SELECT INTO 插入資料列>。


原文出處: 使用 INSERT 與 SELECT 加入資料列
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|