【SQLServer】CSVファイルからレコード取り込み

BULK INSERT文でcsvファイルなどで記録しているレコードを取込むことが可能です。
記号はカンマ以外にも指定可能です。

SQL
BULK INSERT 
	[取込先テーブル]
FROM  
	"C:\test.csv"
WITH 
	(
		FIELDTERMINATOR = ','	--区切り記号
		,ROWTERMINATOR = '\n'   --改行コード
		,FIRSTROW = 2           --取込開始行
		,KEEPNULLS              --データがない箇所はNULL値を保つ
	)

動的SQLで実行するパターン。
例としてCSVのパスを変数化しています。

SQL
--変数設定
DECLARE @CSVPath nvarchar(MAX) = 'C:\test.csv'
DECLARE @sql nvarchar(MAX)

--動的SQL生成
SET @sql =
	'BULK INSERT 
		[取込先テーブル]
	FROM ' 
		+ char(39) + @CSVPath + char(39) + '
	WITH 
		(
			FIELDTERMINATOR = '',''		--区切り記号
			,ROWTERMINATOR = ''\n''		--改行コード
			,FIRSTROW = 2				--取込開始行
			,KEEPNULLS					--データがない箇所はNULL値を保つ
		)'
		
--実行
EXEC (@sql)