변수가 포함된 OPENROWSET 쿼리 문제 해결
OPENROWSET 함수를 사용하여 외부 데이터에 액세스할 때 쿼리 문자열. 그러한 예 중 하나는 "' ' 근처의 잘못된 구문입니다."라는 오류입니다. 이는 다음 쿼리에서 볼 수 있듯이 OPENROWSET 문으로 변수를 연결하려고 할 때 발생합니다.
SELECT * FROM OPENROWSET( 'SQLNCLI', 'DRIVER={SQL Server};', 'EXEC dbo.sProc1 @ID = ' + @id )
이 쿼리에서는 @id 변수가 ' ' 연산자를 사용하여 EXEC 문에 추가됩니다. . 그러나 OPENROWSET은 쿼리 문자열에서 표현식 사용을 지원하지 않습니다.
해결 방법:
이 문제를 해결하려면 OPENROWSET 쿼리에서 변수를 직접 사용할 수 없습니다. 대신 동적 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 변수를 정의하여 동적 SQL 쿼리를 보관하고 CONVERT() 함수를 사용하여 @ID 변수를 연결합니다. 이를 통해 원하는 매개변수로 동적 SQL 문을 실행할 수 있습니다.
위 내용은 변수가 있는 OPENROWSET 쿼리에서 '' ' 근처의 잘못된 구문' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!