> 데이터 베이스 > MySQL 튜토리얼 > OPENROWSET 쿼리에서 변수 대체를 처리하는 방법은 무엇입니까?

OPENROWSET 쿼리에서 변수 대체를 처리하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-05 18:15:39
원래의
649명이 탐색했습니다.

How to Handle Variable Substitution in OPENROWSET Queries?

OPENROWSET 쿼리의 변수 대체

이 쿼리는 변수(@ID)를 OPENROWSET 문에 동적으로 포함하려고 할 때 오류가 발생합니다.

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )
로그인 후 복사

오류 메시지는 ' ' 근처의 잘못된 구문을 나타내며 강조 표시됩니다. 문자열을 변수와 연결하려는 시도.

오류가 발생하는 이유

OPENROWSET에서는 직접 변수 대체를 허용하지 않습니다. 공급자에게 전달된 문자열 인수는 그대로 평가되어 변수 평가 및 포함을 방지합니다.

해결책: 동적 SQL

OPENROWSET 쿼리에 변수를 포함하려면 다음을 수행해야 합니다. 동적 SQL 기술 사용:

  1. 변수를 선언하고 value.
  2. OPENROWSET 문을 변수 값과 연결하여 동적 SQL 문자열을 구성합니다.
  3. 동적 SQL을 준비하고 실행합니다.

예는 다음과 같습니다.

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER={SQL Server};'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)
로그인 후 복사

동적 SQL을 사용하면 런타임에 공급자 문자열을 구성하고 변수를 동적으로 포함할 수 있습니다. 가치가 있습니다.

위 내용은 OPENROWSET 쿼리에서 변수 대체를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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