SQL Server 2005のテーブルに一括挿入する方法
-
22-07-2019 - |
質問
一部のレコードが渡されるntextフィールドを使用するstoredprocがあります。 次のようなテーブルtがあるとします。
| ID | Name | Designation|
--------------------------
| 1 | ABC | Team leader|
| 2 | DEF | Developer |
| 3 | XYZ | Manager |
「4 | Tom | Developer」としてさらに2つのレコードを送信しています。 5 |ジョン|チームリーダー; ' 上記の文字列には、「|」で区切られた列値が含まれます行は「;」で区切られます。 したがって、storedprocのntext型パラメータとして文字列を渡し、テーブルに行を挿入する必要がある場合、これを行う方法は?
SQL Server 2005のテーブルに一括挿入を実装する最良の方法は何ですか?
解決
一括挿入 tsqlの例を見ましたかファイルから(最初にファイルに保存できますか?
BULK INSERT AdventureWorks.Sales.SalesOrderDetail
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR =' |',
ROWTERMINATOR =' |\n'
)
それ以外の場合は、行を分割し、これらをループして、フィールドを分割する必要があります
分割を使用
CREATE FUNCTION [dbo].[SplitString]
(
@String VARCHAR(MAX) ,
@Delimiter VARCHAR(10)
)
RETURNS @RetTable TABLE(
String varchar(MAX)
)
AS
BEGIN
DECLARE @i INT ,
@j INT
SELECT @i = 1
WHILE @i <= LEN(@String)
BEGIN
SELECT @j = CHARINDEX(@Delimiter, @String, @i)
IF @j = 0
BEGIN
SELECT @j = LEN(@String) + 1
END
INSERT @RetTable SELECT SUBSTRING(@String, @i, @j - @i)
SELECT @i = @j + LEN(@Delimiter)
END
RETURN
END
しかし、これは常に悪夢のようです。
所属していません StackOverflow