2010-12-02 64 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 ...当你不能选择从现有表中插入并插入到相同的现有表中 - 您需要为目标表使用新的表名。