당신은 데이터를 분리하는 다중 문 테이블 값 기능을 만들 수 있습니다. 당신은 각각의 NAME과 AGE를 테이블 타입 변수에 삽입하기 만하면됩니다. 그리고 삽입 후에는 아래와 같이 테이블을 반환해야합니다. 문자열에서 데이터를 삽입하는 동안
CREATE FUNCTION UDF_InsertDataFromString
(
@dataString VARCHAR(5000)
)
RETURNS @insertedData TABLE
(
NAME VARCHAR(30),
AGE INT
)
AS
BEGIN
DECLARE @pipeIndex INT,
@commaIndex INT,
@LENGTH INT,
@NAME VARCHAR(100),
@AGE INT
SELECT @LENGTH = LEN(RTRIM(LTRIM(@dataString))),
@dataString = RTRIM(LTRIM(@dataString))
WHILE (@LENGTH <> 0)
BEGIN
SELECT @LENGTH = LEN(@dataString),
@commaIndex = CHARINDEX(',', @dataString),
@pipeIndex = CHARINDEX('|', @dataString)
IF(@pipeIndex = 0) SET @pipeIndex = @LENGTH +1
SELECT @NAME = RTRIM(LTRIM(SUBSTRING(@dataString, 1, @commaIndex-1))),
@AGE = RTRIM(LTRIM(SUBSTRING(@dataString, @commaIndex+1, @[email protected]))),
@dataString = RTRIM(LTRIM(SUBSTRING(@dataString, @pipeIndex+1, @[email protected])))
INSERT INTO @insertedData(NAME, AGE)
VALUES(@NAME, @AGE)
SELECT @LENGTH = LEN(@dataString)
END
RETURN
END
지금이 기능을 사용할 수 있습니다, 당신은 아래에 주어진 함수의 매개 변수로 문자열을 전달해야합니다.
DECLARE @personDetail TABLE(NAME VARCHAR(30), AGE INT)
INSERT INTO @personDetail(NAME, AGE)
SELECT NAME, AGE
FROM dbo.UDF_InsertDataFromString('Acton,58|Nairi,20|Sara,14|Denny,52')
SELECT NAME, AGE
FROM @personDetail
에 대해 서로 다른 문자열 함수를 적용해야합니다. 또는'bulk import'를 사용하여 파일에서 직접 읽어보십시오. –