SQL Server 2005에 값 배열을 삽입하는 방법은 무엇입니까?
-
03-07-2019 - |
문제
간단한 반복없이 값 배열 (아마도 필드 이름의 배열 또는 매트릭스와 함께)을 삽입 (또는 업데이트)하기 위해 SQL 코드를 작성하려면 어떻게합니까?
해결책
목록을 XML 문자열로 구성하고 저장된 Procs에 전달합니다. SQL 2005에서는 XML을 구문 분석하고 벌크 인서트를 수행하는 XML 기능이 향상되었습니다.
이 게시물을 확인하십시오.XML 매개 변수가있는 SQL Server 2005로 목록을 전달합니다
다른 팁
값을 목록에 연결하고 SP로 전달하는 간단한 방법.
sp에서 dbo.split udf를 사용하여 결과 세트 (테이블)로 다시 변환하십시오.
이 기능 만들기 :
CREATE FUNCTION dbo.Split(@String nvarchar(4000), @Delimiter char(1))
returns @Results TABLE (Items nvarchar(4000))
as
begin
declare @index int
declare @slice nvarchar(4000)
select @index = 1
if @String is null return
while @index != 0
begin
select @index = charindex(@Delimiter,@String)
if @index !=0
select @slice = left(@String,@index - 1)
else
select @slice = @String
insert into @Results(Items) values(@slice)
select @String = right(@String,len(@String) - @index)
if len(@String) = 0 break
end return
end
그런 다음 시도하십시오.
select * from dbo.split('a,b,c,d,e,f,g,h,i,j,k,l', ',')
데이터가 이미 데이터베이스에있는 경우 사용할 수 있습니다. INSERT SELECT
통사론. 값 삽입과 약간 다릅니다 ...
INSERT recipient_table (field1, field2)
SELECT field1_from, field2_from
FROM donor_table
WHERE field1_from = 'condition'
제휴하지 않습니다 StackOverflow