8

テーブル「A」を持つデータベース「temp」があります。新しいデータベース「temp2」を作成しました。テーブル「A」を「temp」から「temp2」の新しいテーブルにコピーしたい。このステートメントを試しましたが、構文が正しくないと表示されます。ステートメントは次のとおりです。

CREATE TABLE B IN 'temp2'
  AS (SELECT * FROM A IN 'temp');

エラーは次のとおりです。

メッセージ156、レベル15、状態1、行2キーワード「IN」の近くの構文が正しくありません。メッセージ156、レベル15、状態1、行3キーワード「IN」の近くの構文が正しくありません。

誰もが問題を知っていますか?

前もって感謝します、

グレッグ

4

8 に答える 8

22

私はその構文を見たことがありません。これは私が普段使っているものです。

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
于 2010-06-06T07:41:03.930 に答える
5

正しいテーブルを識別できるようにするには、SQLServerのテーブル名を十分に修飾する必要があります。

名前の構造は<server name>.<database name>.<schema>.<table>です。両方のテーブルが同じサーバー上にあるため、それを省くことができますが、残りは必要です。

SELECT * 
INTO temp2.dbo.B
FROM temp.dbo.A
于 2010-06-06T07:44:43.430 に答える
1

クエリは次のようになります。

SELECT * INTO temp2.dbo.b
FROM temp.dbo.a
于 2010-06-06T07:41:13.160 に答える
1

データが必要ない場合は、次のことができます。

SELECT TOP 0 * INTO temp2.dbo.b
FROM temp.dbo.a
于 2013-09-19T15:16:39.343 に答える
0

A最も簡単な方法は、データベースからテーブルを右クリックしてから、 => =>tempをクリックすることです。これでスクリプトが作成されます。Script Table asCREATE toNew Query Editor Window

次に、次の 2 行を変更します。新しいデータベースに対して実行します。

USE [temp2]

....

CREATE TABLE [dbo].[B]

.....
于 2016-07-28T17:41:18.173 に答える
0

SELECT INTO はインデックスをコピーしないことに注意してください。それらも必要な場合は、ソースからスクリプトを生成できます。ターゲットデータベースで実行し、挿入を行います

temp2.​​dbo.b (列) に挿入する temp.dbo.a から列を選択する

于 2010-06-07T09:19:50.280 に答える