> 데이터 베이스 > MySQL 튜토리얼 > SQL Server의 OPENQUERY에 매개 변수를 어떻게 사용할 수 있나요?

SQL Server의 OPENQUERY에 매개 변수를 어떻게 사용할 수 있나요?

Linda Hamilton
풀어 주다: 2025-01-14 12:35:47
원래의
115명이 탐색했습니다.

How Can I Use Parameters with SQL Server's OPENQUERY?

매개변수가 있는 SQL Server OPENQUERY: 해결 방법

SQL Server의 OPENQUERY은 연결된 서버에서 쿼리를 실행하지만 인수 내의 변수를 직접 사용하는 것은 지원되지 않습니다. 이를 위해서는 매개변수 전달에 대한 해결 방법이 필요합니다.

방법 1: 문자열 연결을 통해 단순 값 전달

특정 값이 필요한 간단한 쿼리의 경우 문자열 연결이 포함된 동적 SQL이 실행 가능한 솔루션입니다.

<code class="language-sql">DECLARE @TSQL VARCHAR(8000), @VAR CHAR(2);
SELECT @VAR = 'CA';
SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')';
EXEC (@TSQL);</code>
로그인 후 복사

방법 2: 전체 쿼리를 문자열로 전달

이 접근 방식을 사용하면 전체 쿼리 또는 연결된 서버 이름까지 동적으로 전달할 수 있습니다.

<code class="language-sql">DECLARE @OPENQUERY NVARCHAR(4000), @TSQL NVARCHAR(4000), @LinkedServer NVARCHAR(4000);
SET @LinkedServer = 'MyLinkedServer';
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''';
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')';
EXEC (@OPENQUERY + @TSQL);</code>
로그인 후 복사

방법 3: 보다 깔끔한 매개변수 처리를 위해 sp_executesql 사용

복잡한 중첩 인용을 피하려면 sp_executesql:

를 활용하세요.
<code class="language-sql">
DECLARE @VAR CHAR(2);
SELECT @VAR = 'CA';
EXEC MyLinkedServer.master.dbo.sp_executesql
N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
N'@state CHAR(2)',
@VAR;
```  This method offers improved readability and reduces the risk of SQL injection vulnerabilities compared to string concatenation.  Note that you're executing `sp_executesql` on the linked server itself.


Choose the method that best suits your query complexity and preference for code clarity.  Remember to prioritize security and avoid SQL injection vulnerabilities when using dynamic SQL.</code>
로그인 후 복사

위 내용은 SQL Server의 OPENQUERY에 매개 변수를 어떻게 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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