I'm new to MS SQL and trying to solve a problem where I need to extract specific data from a remote SQL Server 2005 DB into a local SQL Server 2008 R2 DB. In a Stored Procedure, I'm trying to use Linked Server via Ad Hoc links in the following manner:
@TestRunId int,
@Force bit
.
.
.
.
SELECT * INTO PerfData.[DataCache].[TodaysPageLoadTimes] FROM
(SELECT ClientServerName.*, TestProperty.PropertyValue as ClientModel FROM
(SELECT ClientBuild.*, TestProperty.PropertyValue as ClientServerName FROM
(SELECT PageLoads.LogID, PageLoads.TestRunID, Test.Id AS TestID, Test.TestCaseName, Test.Result, PageLoads.[Message], PageLoads.[Category],
TestProperty.PropertyValue as ClientBuild
FROM OPENROWSET
('SQLNCLI', 'RMTSVRNAME'; 'rmtsvrUser'; 'rmtsvrPwd', '(SELECT LogEntry.ID AS LogID, LogEntry.TestRunID, [Message], [Category], TestId FROM LoggingDB.dbo.LogEntry
WHERE (Category BETWEEN 281 AND 286 OR Category BETWEEN 289 AND 296 OR
Category BETWEEN 298 AND 299 OR Category BETWEEN 304 AND 304)
AND TestRunID = @TestRunId)')
AS PageLoads
INNER JOIN LoggingDB.dbo.Test ON Test.Id = PageLoads.TestId
INNER JOIN LoggingDB.dbo.TestProperty ON Test.Id = TestProperty.TestId
WHERE TestProperty.PropertyName = 'ClientBuild')
AS ClientBuild
INNER JOIN LoggingDB.dbo.TestProperty ON ClientBuild.TestID = TestProperty.TestId
WHERE TestProperty.PropertyName = 'ClientServerName')
AS ClientServerName
INNER JOIN LoggingDB.dbo.TestProperty ON ClientServerName.TestID = TestProperty.TestId
WHERE TestProperty.PropertyName = 'ClientModel')
AS ClientModel
But, when I try to create/execute the Stored Procedure, I get this error:
OLE DB provider "SQLNCLI10" for linked server "(null)" returned message "Deferred prepare could not be completed.".
Msg 8180, Level 16, State 1, Line 1
Statement(s) could not be prepared.
Msg 137, Level 15, State 2, Line 4
Must declare the scalar variable "@TestRunId".
Can anyone suggest what I am doing wrong and point me to a good, solid (and rather easily understood) example of how to do this correctly?
Your help is GREATLY appreciated!! :)