Share via


INTO 子句 (Transact-SQL)

更新: 2007 年 9 月 15 日

建立一份新的資料表,再將查詢中所產生的資料列插入其中。

主題連結圖示Transact-SQL 語法慣例

語法

[ INTO new_table ]

引數

  • new_table
    根據選取清單中的資料行及 WHERE 子句所選取的資料列,來指定要建立之新資料表的名稱。new_table 的格式是藉由評估選取清單中的運算式來決定的。new_table 中的資料行依照選取清單所指定的順序來建立。new_table 中每個資料行的名稱、資料類型和值,都與選取清單中對應的運算式相同。

    當選取清單包括計算資料行時,新資料表變數中對應的資料行並不是計算資料行。新資料行中的值是執行 SELECT...INTO 時所計算的值。

    特定大量作業 (包括 SELECT...INTO) 的記錄量會隨著資料庫的有效復原模式而不同。如需詳細資訊,請參閱<復原模式概觀>。

    ms188029.note(zh-tw,SQL.90).gif附註:
    在 SQL Server 2000 之前的版本中,只有在設定了 select into/bulkcopy 的情況下,才允許利用 SELECT INTO 來建立永久資料表。在 SQL Server 2000 和更新的版本中,您是否能利用 SELECT INTO 來建立永久資料表,已經不會受到 select into/bulkcopy 資料庫選項的影響。

備註

搭配 INTO 子句來執行 SELECT 陳述式的使用者,必須有目的地資料庫中的 CREATE TABLE 權限。

即使來源資料表已經分割,您也無法使用 SELECT INTO 建立分割的資料表。SELECT INTO 不使用來源資料表的資料分割配置。而改用在預設檔案群組上建立的新資料表。如果要將資料行插入分割的資料表,您必須先建立分割的資料表,然後使用 INSERT INTO…SELECT FROM 陳述式。

SELECT...INTO 不能搭配 COMPUTE 使用。

範例

下列範例從各個員工和地址相關資料表選取七個資料行來建立 dbo.EmployeeAddresses 資料表。

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title, a.AddressLine1, a.City, sp.Name AS [State/Province], a.PostalCode
INTO dbo.EmployeeAddresses
FROM Person.Contact AS c
JOIN HumanResources.Employee AS e ON e.ContactID = c.ContactID
JOIN HumanResources.EmployeeAddress AS ea ON ea.EmployeeID = e.EmployeeID
JOIN Person.Address AS a on a.AddressID = ea.AddressID
JOIN Person.StateProvince as sp ON sp.StateProvinceID = a.StateProvinceID;
GO

請參閱

參考

SELECT (Transact-SQL)
SELECT 範例 (Transact-SQL)

其他資源

使用 SELECT INTO 插入資料列

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2007 年 9 月 15 日

新增內容:
  • 在「備註」一節中,新增資料分割資料表的資訊。
  • 新增「範例」一節。