저장 프로 시저 내에서 OPENQUERY (연결된 서버에서 데이터를 가져 오는 데 사용)하는 데 문제가 있습니다. SQL 변수를 읽었지만 작동하지 않는 것 같아서 SQL의 변수/문자열을 오해하고있는 것 같습니다. 그것은 "잘못된 구문을 '+'근처에 던지고 있습니다." 그리고 내가 뭘 잘못하고 있는지 모르겠습니다.OPENQUERY 문자열 내 저장 프로 시저/SQL 변수
코드 :
ALTER PROCEDURE [dbo].[sp_getPerson]
@myName nvarchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM OPENQUERY(MY_LINKED_SERVER, 'SELECT * FROM myTable
WHERE (myName= ''' + @myName + ''')
') AS derivedtbl_1
END
해야하는이 작품, 이론?
좋아요! 나는 구문에 대해 조금 확신하지 못한다. 링크 된 테이블은 전체 접두사를 필요로 할까? 예. SELECT * FROM [LINKED_SERVER] .MYDATABASE.dbo.MYTABLE1 LEFT OUTER JOIN [LINKED_SERVER] .MYDATABASE.dbo.MYTABLE2 ON ... – valoukh
exec sp_addlinkedserver @ server = 'test-sql01'; exec sp_addlinkedsrvlogin @ rmtsrvname = 'test-sql01', @ useself = false, @ rmtuser = 'sa', @ rmtpassword = 'sapassword'; 예. 전체 접두어가 필요합니다. 그러나 연결된 SERVER-TABLE의 별명을 위에서 아래로 지정할 수 있습니다. – maSTAShuFu