2010-12-02 3 views
-1

내 쿼리가 구문 오류를 반환합니다.SQL '간단한'쿼리 구문 오류 - 도움이!

잘못된 개체 이름 'table.clientinfo'. 때문에 삽입 기능이 존재하지 않는 '클라이언트 정보'를 찾지 못하는 경우에

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

오류가 :

여기 내 쿼리입니다.

누구나 나를 선택 함수에서 채우기 전에 먼저 테이블을 만들려면 올바른 구문을 줄 수 있습니까?

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

답변

0

당신은

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

를 사용하거나한다 . 당신은 foriegn 및 기본 키를 표시 할 수 있습니다, 제약 등 너무

SQL 서버에서
+0

** INTO **는 훌륭하고 유용하지만 완전히 ** 선택 사항 ** - 확실히 ** 문제가 아닙니다 ..... –

+0

데이터베이스가 SQL Server 2005에서 사용되고 있습니다. 그렇다면 데이터베이스가 없으므로 먼저 만들어야하지 않습니까? 이것은 제가 생각한 것입니다. 또한 SQL 서버에서 대괄호가 필요합니까? – JosephB

+0

@Joseph - 데이터베이스에있는 테이블에서 데이터베이스를 선택해야합니다. –

1

를 앱 당신은 특정 유형/크기 CREATE TABLE

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

를 원하는 : 당신이 직접 다른 데이터를 만들려면

+0

그럼 나머지 쿼리 전에 넣을 수 있습니까? 미안 해요, 내 새 책을 사용하여 초보자도 :) – JosephB

0

, 당신이 선택하고 새 테이블에 삽입이 구문을 사용하려면 :

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

당신은 SELECT .... INTO 필요를 당신에게 적절한 테이블 이름을 사용해야합니다. 당신이 선택할 수 없습니다 SELECT .. INTO ...을 수행 할 때 또한 FROM [table.clientinfo]

:

하면 테이블 이름 정말 그것에서 (! 정말 정말 나쁜 관행을) 점있는 경우

는 다음 MUST은 대괄호로 해당 테이블 이름을 넣어 기존 테이블에서 가져 와서 동일한 기존 테이블에 삽입하십시오. - 대상 테이블에 대해 새 테이블 이름을 사용해야합니다.