Saltar al contenido

Uso de una variable en la consulta OPENROWSET

Esta inquietud se puede solucionar de diferentes maneras, pero te mostramos la respuesta más completa en nuestra opinión.

Solución:

Como sugirió Scott, no puede usar expresiones en OPENROWSET.Intente crear un sql dinámico para pasar los parámetros

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER=SQL Server;'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)

OPENROWSET requiere string literales, no expresiones. Se queja del signo más, porque no espera nada más que un string literal y seguiste el string literal con un operador.

Consulte http://msdn.microsoft.com/en-us/library/ms190312.aspx que establece:

‘consulta’

Es un string constante enviada y ejecutada por el proveedor…

Declare @Route VARCHAR(200)
Declare @sql nvarchar(max)
Set @Route='C:OCRevisiones.xlsx;'
Set @sql='SELECT * INTO FFFF
FROM OPENROWSET(
               ''Microsoft.ACE.OLEDB.12.0'',
               ''Excel 12.0;HDR=YES;Database=' + @Route + ''',
               ''SELECT * FROM [Sheet1$]'')'

 Print @sql
 --Exec(@sql)

Te invitamos a añadir valor a nuestra información participando con tu experiencia en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *