2013-07-22 87 views
0

我在SQL和SQL Server中完全沒有任何以前的IT知識。不過,我只是從它的愛好中學習SQL Server。我的問題很簡單。我有問題使用sql代碼創建表。我想從另一個表old_table創建一個名爲new_table的表。我的代碼是:關於創建表需要一個簡單的幫助

CREATE TABLE new_table 
AS (SELECT * FROM old_table) 

,但它給以下錯誤:Msg 102, Level 15, State 1, Line 2 Incorrect syntax near '('.

我已經做了很多事情,但無法弄清楚是什麼問題。任何人都可以請指導我有什麼問題?

+0

SQL Server不支持這種類型的操作的ANSI SQL標準。 –

回答

2
SELECT * INTO new_table 
FROM SourceTable 

new_table必須不存在。

Ref

在回答您的評論:

SELECT * INTO dbo.new_table 
FROM (SELECT DISTINCT col1 FROM old_table) tmptable 
+0

謝謝:)但是我想只帶一列,然後按它分組。用我的代碼,我想我會寫這樣的代碼:CREATE TABLE new_table as(從old_table group by new_table.col1中選擇new_table.col1)。我不知道如何使用你的方法進行分組。但謝謝,我現在可以知道如何創建一個表:) –

+2

這是一個稍微不同的問題,你發佈的一個... –

+0

是的:)但我認爲寧願創建一個單獨的問題/線程,我問它在這裏。盡我所知,它有點類似。 :) –

1

CREATE TABLE new_table AS不是在SQL Server中有效。 (這回答你問的問題,這個問題是什麼。)

等效功能是在Microsoft SQL Server(T-SQL)可用,但它使用T-SQL語法,這是不同的:

SELECT * INTO new_table FROM old_table 

這將允許您創建包含現有表中所有列和行的新表。

http://msdn.microsoft.com/en-us/library/ms188029(v=sql.105).aspx

1

包括頂0如果你只需要表結構(無數據)

SELECT TOP 0 * INTO new_table FROM old_table