2017-01-19 42 views
-2

我試圖從查詢中插入結果到一個新表中。將許多表放入SQL Server中的一個表中?

我正在使用此查詢並希望將結果收集到一個表中。

查詢(我發現的地方)看起來是這樣的:

USE [AdventureWorksDW2012] 

SELECT 
    OBJECT_SCHEMA_NAME(T.[object_id],DB_ID()) AS [Schema], 
    T.[name] AS [table_name], 
    AC.[name] AS [column_name], 
    TY.[name] AS system_data_type, 
    AC.[max_length], 
    AC.[precision], AC.[scale], 
    AC.[is_nullable], AC.[is_ansi_padded] 
FROM 
    sys.[tables] AS T 
INNER JOIN 
    sys.[all_columns] AC ON T.[object_id] = AC.[object_id] 
INNER JOIN 
    sys.[types] TY ON AC.[system_type_id] = TY.[system_type_id] 
        AND AC.[user_type_id] = TY.[user_type_id] 
WHERE 
    T.[is_ms_shipped] = 0 
ORDER BY 
    T.[name], AC.[column_id]; 
+0

那麼首先,沒有'在SQL語句insert',通常你會寫'插入....'或'選擇col1,col2 into' – Tanner

+0

[SQL Server SELECT into existing table]的可能重複(http://stackoverflow.com/questions/4101739/sql-server-select-into-existing-table) – Tanner

回答

0

嘗試使用INTO條款是這樣的:

USE [AdventureWorksDW2012] 
SELECT OBJECT_SCHEMA_NAME(T.[object_id],DB_ID()) AS [Schema], 
T.[name] AS [table_name], AC.[name] AS [column_name], 
TY.[name] AS system_data_type, AC.[max_length], 
AC.[precision], AC.[scale], AC.[is_nullable], AC.[is_ansi_padded] 
INTO dbo.MyNewTable 
FROM sys.[tables] AS T 
INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id] 
INNER JOIN sys.[types] TY ON AC.[system_type_id] = TY.[system_type_id] 
          AND AC.[user_type_id] = TY.[user_type_id] 
WHERE T.[is_ms_shipped] = 0 
ORDER BY T.[name], AC.[column_id] 
; 
0

使用INTO條款作爲未來: -

USE [AdventureWorksDW2012] 
SELECT OBJECT_SCHEMA_NAME(T.[object_id],DB_ID()) AS [Schema], 
T.[name] AS [table_name], AC.[name] AS [column_name], 
TY.[name] AS system_data_type, AC.[max_length], 
AC.[precision], AC.[scale], AC.[is_nullable], AC.[is_ansi_padded] 
Into New_table -- this line is added. 
FROM sys.[tables] AS T 
INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id] 
INNER JOIN sys.[types] TY ON AC.[system_type_id] = TY.[system_type_id] AND AC.[user_type_id] = TY.[user_type_id] 
WHERE T.[is_ms_shipped] = 0 
ORDER BY T.[name], AC.[column_id] 

的示例代碼

Select * 
Into New_table 
From Exist_Table 

和MSDN說: -

SELECT ... INTO在默認文件組中創建一個新表,並將查詢的結果行插入其中。

相關問題