>백엔드 개발 >C++ >C#에서 동적 문자열 목록을 SQL Server 저장 프로시저에 효율적으로 전달하는 방법은 무엇입니까?

C#에서 동적 문자열 목록을 SQL Server 저장 프로시저에 효율적으로 전달하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-04 18:44:38465검색

How to Efficiently Pass a Dynamic String List to a SQL Server Stored Procedure from C#?

C# SQL Server - 저장 프로시저에 동적 문자열 목록 전달

Brett의 쿼리는 동적 문자열 목록을 SQL Server 저장 프로시저에 통합하는 작업을 중심으로 진행됩니다. 문제는 성능 저하 없이 이 목록을 효율적으로 전달하는 것입니다.

문자열을 쉼표로 구분된 목록으로 연결하는 기존 접근 방식에는 특히 대규모 데이터 세트의 경우 제한이 있습니다. 그러나 더 효율적인 옵션도 있습니다.

사용자 정의 테이블 유형(UDT):

SQL Server 2008에서는 사용자 정의 테이블 유형(UDT)을 도입했습니다. 표 형식 데이터를 저장할 수 있는 사용자 정의 데이터 유형을 생성합니다. "StringList"라는 UDT를 생성하여 저장 프로시저 내에서 사용할 수 있습니다.

SQL:

CREATE TYPE [dbo].[StringList] AS TABLE(
    [Item] [NVARCHAR](MAX) NULL
);

다음 C# 코드는 이 UDT를 사용하는 방법을 보여줍니다.

var table = new DataTable();
table.Columns.Add("Item", typeof(string));

for (int i = 0; i < 10; i++)
    table.Rows.Add("Item " + i.ToString());

var pList = new SqlParameter("@list", SqlDbType.Structured);
pList.TypeName = "dbo.StringList";
pList.Value = table;

저장 프로시저 내에서 다음을 사용하여 목록에 액세스할 수 있습니다.

CREATE PROCEDURE [dbo].[sp_UseStringList]
    @list StringList READONLY
AS
BEGIN
    SELECT l.Item FROM @list l;
END

위 내용은 C#에서 동적 문자열 목록을 SQL Server 저장 프로시저에 효율적으로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.