2010-12-02 54 views
-1

我的查詢返回語法錯誤:SQL'簡單'查詢語法錯誤 - 幫助!

無效的對象名'table.clientinfo'。

這裏是我的查詢:

INSERT table.clientinfo (name, addr, entry, affiliate) 
SELECT name, addr, entry, affiliate FROM table.clientinfo WHERE product = 5 

是誤差由於插入功能沒有找到「ClientInfo客戶端」,因爲它不存在。

任何人都可以給我正確的語法來創建表之前,填充它從選擇功能?

回答

0

您應該使用

INSERT INTO [tablename] (field1, field2, ... , fieldx) 
SELECT ... 

或者,如果你想直接創建其他數據:

SELECT field1, field2, ... , fieldx 
INTO newTable 
FROM oldtable 
WHERE .... 
+0

** INTO **是偉大而有用的,但完全**可選** - 這絕對是**不是**問題..... – 2010-12-02 14:17:37

+0

數據庫正在SQL Server 2005中使用。所以如果有沒有數據庫,我不應該先創建它?這是我以爲我在追求的。另外,它在SQL服務器中工作所需的方括號? – JosephB 2010-12-02 14:20:00

1

你想CREATE TABLE

CREATE TABLE clientinfo (
     name VARCHAR(100) 
     addr VARCHAR(100) 
     entry VARCHAR(100) 
     affiliate VARCHAR(100) 
     ); 

與特定類型/大小爲您的應用程序。你可能想表明foriegn和主鍵,約束等也

0

在SQL Server中,如果你想選擇並插入一個新表,使用此語法:

SELECT name, addr, entry, affiliate 
INTO (new table name) 
FROM [table.clientinfo] 
WHERE product = 5 

你需要SELECT .... INTO和你需要確保使用正確的表名。

如果你的表名真的在它有一個點(!真的真的不好的做法),那麼你MUST把該表名在方括號:FROM [table.clientinfo]

而且,做SELECT .. INTO ...當你不能選擇從現有表中插入並插入到相同的現有表中 - 您需要爲目標表使用新的表名。