2011-08-04 8 views
5

Quiero construir la consulta utilizada con el método OPENROWSET.SQL: OPENROWSET, no se puede compilar para la cadena de solicitud?

Ejemplo:

SELECT * 
FROM 
OPENROWSET 
('SQLOLEDB', 'srv'; 'login'; 'mdp'; 
'SELECT * 
FROM Case 
WHERE ID = ' + @caseID) 

Pero cuando lo hago me sale el error: sintaxis incorrecta cerca de '+'

¿Cómo puedo construir la consulta? Gracias

Respuesta

6

Aunque la consulta en OPENROWSET se especifica como una cadena y por ese medio se parece mucho a una consulta dinámica, la sintaxis no permite que se construya de la misma manera, sin partes.

Me temo, que tendrá que construir una consulta dinámica, la cual llamará OPENROWSET, algo como esto:

SET @sql = ' 
    SELECT * 
    FROM 
    OPENROWSET 
    (''SQLOLEDB'', ''srv''; ''login''; ''mdp''; 
    ''SELECT * 
    FROM Case 
    WHERE ID = ' + @caseID + ''')'; 
EXEC(@sql); 
Cuestiones relacionadas