1

あるサーバーから別のサーバーにテーブルの 2 つの列の一括コピーを実行しています。

ソース側のテーブルには約 8 列ありますが、必要なのは 2 列だけです。

宛先側のテーブルには2つの列があります(必要な2つは両方ともint型です)

どちらのデータベースも SQL Server 2005 です。

これが私の2つのbcpコマンドです:

c:\> bcp "select c1, c2 from srcTable" queryout tableData.bcp -N -T -S srcServer
c:\> bcp destTable in tableData.bcp -N -T -S destServer

これにより宛先テーブルのデータが破損するのはなぜですか? 素敵な連続した整数を取得する必要がありますが、代わりに次のように取得します。

c1          c2
586332      83014148
123128736   -105042384
-561616278  -309997736

私は何を間違っていますか?

4

1 に答える 1

1

とった。

列の定義は、NULL であるか NOT NULL であるかを含め、正確に一致する必要があります。

ソースには次のものがありました。

srcTable (
c1 int not null (PK)
c2 int null
c3 datetime not null
c4 datetime null
...
)

宛先テーブルには次のものがありました。

destTable (
c1 int not null (PK)
c2 int not null 
)

destTable.c2 の NOT NULL がバグでした。

これで潰れました。

于 2009-07-01T17:44:07.350 に答える