SQL'简单'查询语法错误 - 帮助!

时间:2010-12-02 14:12:27

标签: sql sql-server-2005 insert

我的查询返回语法错误:

无效的对象名称't​​able.clientinfo'。

这是我的问题:

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

插入函数导致的错误是否找不到'clientinfo',因为它不存在。

在从select函数填充表之前,有人能给我正确的语法来创建表吗?

3 个答案:

答案 0 :(得分:1)

您需要CREATE TABLE

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

具有适合您应用的特定类型/尺寸。您可能还想指示foriegn和主键,约束等

答案 1 :(得分:0)

你应该使用

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

或者如果您想直接创建其他数据:

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

答案 2 :(得分:0)

在SQL Server中,如果要选择并插入新表,请使用以下语法:

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

您需要SELECT .... INTO,并且需要确保使用正确的表名。

如果您的表名真的中有一个点(非常糟糕的做法!),那么您必须将该表名放在方括号中:{{1} }

此外,在执行FROM [table.clientinfo]时,您无法从现有表中进行选择并插入到同一现有表中 - 您需要为目标表使用新的表名。