2010-12-02 18 views
-1

私のクエリが構文エラーを返します。SQL '単純な'クエリ構文エラー - ヘルプ!

無効なオブジェクト名 'table.clientinfo'。ここで

は私のクエリです:

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

が原因が存在しないとして「CLIENTINFO」を見つけていない挿入機能するとエラーになります。

select関数からデータを入力する前に、テーブルを作成する正しい構文を誰に教えてもらえますか?

答えて

0

あなたは

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

を使用する必要がありますそれとも、直接他のデータを作成する場合:

SELECT field1, field2, ... , fieldx 
INTO newTable 
FROM oldtable 
WHERE .... 
+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) 
     ); 

をしたいです。あなたは、foriegnと主キーを示すために必要な制約など、あまりにも

+0

これを残りのクエリの前に置くことはできますか?申し訳ありませんが、私の新しい本を使って、初心者です:) – JosephB

0

SQL Serverでは、あなたが選択して、新しいテーブルに挿入し、この構文を使用する場合があります

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

あなたはSELECT .... INTOに必要とします適切な表名を使用するようにする必要があります。

あなたのテーブル名の場合、本当にその中にドットがある、そしてあなた角括弧でそのテーブル名を置く必要があります(本当に悪い習慣を!):また、FROM [table.clientinfo]

SELECT .. INTO ...を行うときに選択することはできません既存のテーブルから挿入して既存の同じテーブルに挿入する場合は、新しいテーブル名を使用する必要があります。