ストアドプロシージャ内で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 = 'テスト-sql01'、@ useself = false、@ rmtuser = 'sa'、@ rmtpassword = 'sapassword'; これはプレフィックス全体を必要としますが、リンクされたサーバテーブルを上に指定したようにエイリアスできます。 – maSTAShuFu