2016-05-25 27 views
1

BCPのインポートは、私がBCPを使用している特定除外したり、いくつかの列

ここ
bcp "SELECT csusUsageDate, csusType, csusTrack1, csusTrack2, csusTrack3, csusDateReaded, csusLoggedIn FROM [DbJamaica].[dbo].[CS_Usage]" queryout "C:\temp\CS_Usage.txt" /U.. /P.. -c -T 

私は今、私はこのTXTをインポートすると、私が欲しい、私の主キーを除外します私のプライマリキーは自動的に生成されます:

bcp DbJamaica.dbo.CS_Usage out "C:\temp\CS_Usage.txt" /U.. /P.. -c -T 

私はいつも正式なフォーマットがありませんか?私もフォーマットファイルを使用しましたが、私は同じエラーがあります。 これは私の質問です:どのように列またはいくつかの列を識別する除外するには?

答えて

1

私が知る限り、あなたはできません。 Bcpは基本的にテーブルに盲目的に挿入しますが、カラムが一致しないとエラーが発生します。そして、あなたはあなたのステージングテーブルにbcpを使用することができます

SELECT TOP 0 csusUsageDate, csusType, csusTrack1, csusTrack2, csusTrack3, csusDateReaded, csusLoggedIn 
INTO [DbJamaica].[dbo].[CS_Usage_TEMP] 
FROM [DbJamaica].[dbo].[CS_Usage] 

:あなたは何ができるか、しかし、のようなステージング表を作成している

bcp DbJamaica.dbo.CS_Usage_TEMP out "C:\temp\CS_Usage.txt" /U.. /P.. -c -T 

次のあなたは、実際にステージングからデータを挿入することができますあなたはIDENTITYとしてPK列を設定し、テーブル、:

INSERT INTO DbJamaica.dbo.CS_Usage (csusUsageDate, csusType, csusTrack1, csusTrack2, csusTrack3, csusDateReaded, csusLoggedIn) 
SELECT csusUsageDate, csusType, csusTrack1, csusTrack2, csusTrack3, csusDateReaded, csusLoggedIn 
FROM  DbJamaica.dbo.CS_Usage_TEMP 

そして最後にクリーンアップ:

DROP TABLE DbJamaica.dbo.CS_Usage_TEMP

関連する問題