> 데이터 베이스 > MySQL 튜토리얼 > 사용자 정의 테이블 유형을 사용하여 문자열 목록을 SQL Server 저장 프로시저에 전달하는 방법은 무엇입니까?

사용자 정의 테이블 유형을 사용하여 문자열 목록을 SQL Server 저장 프로시저에 전달하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-13 10:02:42
원래의
128명이 탐색했습니다.

How to Pass a List of Strings to a SQL Server Stored Procedure Using a User-Defined Table Type?

사용자 정의 테이블 유형을 사용하여 SQL Server 저장 프로시저에 문자열 목록 전달

C#에서 SQL Server 저장 프로시저를 호출할 때 문자열 목록을 매개변수로 전달해야 할 수도 있습니다. 간단한 데이터 유형을 처리하는 데에는 표준 매개변수만으로도 충분하지만 목록과 같은 복잡한 데이터 구조에는 보다 정교한 접근 방식이 필요합니다.

문자열 목록을 전달하기 위해 SQL Server의 UDTT(사용자 정의 테이블 유형) 기능을 활용할 수 있습니다. 이 기능을 사용하면 데이터 컬렉션을 저장하기 위해 테이블을 시뮬레이션하는 사용자 정의 데이터 유형을 만들 수 있습니다.

사용자 정의 테이블 유형 생성

먼저 UDTT(사용자 정의 테이블 유형)를 생성해야 합니다.

<code class="language-sql">CREATE TYPE [dbo].[StringList] AS TABLE(
    [Item] [NVARCHAR](MAX) NULL
);</code>
로그인 후 복사

이 UDTT는 문자열을 보관하기 위해 "Item"이라는 단일 열을 정의합니다.

저장 프로시저 수정

다음으로 UDTT 매개변수를 허용하도록 저장 프로시저를 수정합니다.

<code class="language-sql">CREATE PROCEDURE [dbo].[sp_UseStringList]
    @list StringList READONLY
AS
BEGIN
    -- 只返回我们传入的项目
    SELECT l.Item FROM @list l;
END</code>
로그인 후 복사

C#에서 UDTT 채우기

C#에서는 DataTable을 사용하여 UDTT를 채웁니다.

<code class="language-csharp">using (var table = new DataTable()) {
    table.Columns.Add("Item", typeof(string));

    // ...此处添加循环填充字符串列表到DataTable的代码...

    SqlParameter pList = new SqlParameter("@list", SqlDbType.Structured);
    pList.Value = table;
}</code>
로그인 후 복사

UDTT 매개변수를 저장 프로시저에 전달

마지막으로 UDTT 매개변수를 저장 프로시저에 전달합니다.

<code class="language-csharp">using (var cmd = new SqlCommand("exec sp_UseStringList @list", con)) {
    cmd.Parameters.Add(pList);

    using (var dr = cmd.ExecuteReader()) {
        while (dr.Read())
            Console.WriteLine(dr["Item"].ToString());
    }
}</code>
로그인 후 복사

이 접근 방식을 사용하면 문자열 목록을 SQL Server 저장 프로시저에 효율적으로 전달할 수 있습니다.

위 내용은 사용자 정의 테이블 유형을 사용하여 문자열 목록을 SQL Server 저장 프로시저에 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿