Вы должны использовать TSQL, поскольку вы не можете передать переменную в OPENQUERY
:
DECLARE sqlCMD VARCHAR(500);
SET @sqlCMD =
'SELECT * FROM OPENQUERY(PASON, ''SELECT * FROM MyTable WHERE MyPrimaryKey=''''' + @Variable + ''''''')')
EXEC (@sqlCMD);