「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > T-SQLにバルクインサートの変数を正しくキャストする方法は?

T-SQLにバルクインサートの変数を正しくキャストする方法は?

2025-03-25に投稿されました
ブラウズ:224

How to Correctly Cast Variables for Bulk Inserts in T-SQL?

casting変数t-sql

では、バルク挿入ステートメントでは、外部ファイルからテーブルにデータをインポートできます。ただし、文字列変数をデータソースとして使用する場合、エラーが発生する可能性があります。 @csvfile = n't:\ x.csv 'を設定します。 バルク挿入[dbo]。[tstagingTable] - n't:\ x.csv 'から - この行は機能します @csvfileから - この行は失敗します と ( FieldTerminator = '、'、 rowterminator = '\ n'、 Firstow = 2 )

エラーメッセージ: 'with'。

理由:
DECLARE @CSVfile nvarchar(255);
SET @CSVfile = N'T:\x.csv';
BULK INSERT [dbo].[TStagingTable]
-- FROM N'T:\x.csv' -- This line works
FROM @CSVfile -- This line fails
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
ステートメントでは、クロースは入力ファイルのパスとしてリテラル文字列を必要とします。変数を使用する場合、文字通りの文字列にキャストする必要があります。 @q =を設定します 'バルクインサート[tStagingTable] 'char(39)@csvfile char(39)'から と ( FieldTerminator = ''、 ''、 rowterminator = '' \ n ''、 firstow = 1 )) exec(@q)

このコードは、句から@csvfileをリテラル文字列にキャストし、問題を解決し、バルクインサートを成功させるための動的なSQLステートメントを生成します。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3