Documentación http://msdn.microsoft.com/es-es/library/ms190312.aspx
Puede no funcionar por problemas de permisos ( hay que ver como hacer que el sqlServer tenga acceso a la carpeta, sobre todo cuando el usuario de conexion no es un usuario windows)
When you use OPENROWSET, it is important to understand how SQL Server handles impersonation. For information about security considerations, see Import Bulk Data by Using BULK INSERT or OPENROWSET(BULK...) (SQL Server).
He compartido la carpeta \\mimaquina\SQLFICHERO en mi maquina dando permisos de lectura a todo el mundo-- >y asi funciona
INSERT INTO [dbo].[misficheros]
([id]
,[nombre]
,[adjunto])
VALUES
(9999999
,'Prueba'
,(SELECT * FROM OPENROWSET(BULK N'\\mimaquina\SQLFICHERO\untitled.png', SINGLE_BLOB ) as fichero ) )
([id]
,[nombre]
,[adjunto])
VALUES
(9999999
,'Prueba'
,(SELECT * FROM OPENROWSET(BULK N'\\mimaquina\SQLFICHERO\untitled.png', SINGLE_BLOB ) as fichero ) )
Para leer es una historia, aun peor
Hay que usar la utilidad BCP
Información:
http://msdn.microsoft.com/es-es/library/ms162802.aspx
Ejemplo, el mejor con diferencia:
www.codeproject.com
Lo primero que tenemos que hacer es activarlo, (por defecto no está activo)
EXEC sp_configure 'show advanced options', 1; -- esta ya estaba en 1
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
La ruta del disco duro donde queremos guárdalo tiene que ser accesible.GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
En mi maquina he compartido la carpeta \\mimaquina\\SQLFICHERO dando permisos de lectura y escritura a todo el mundo
Declare @sql varchar(500)
set @sql = 'BCP "select adjunto from [dbo].[misficheros]where [id] =9999999" QUERYOUT \\mimaquina\SQLFICHERO\mio.png -T -f
C:\blob\testblob.fmt -S '
EXEC xp_CmdShell @sql
GO
set @sql = 'BCP "select adjunto from [dbo].[misficheros]where [id] =9999999" QUERYOUT \\mimaquina\SQLFICHERO\mio.png -T -f
C:\blob\testblob.fmt -S '
EXEC xp_CmdShell @sql
GO
C:\blob\testblob.fmt es un archivo de formato
.png)
.png)
En informix era mucho más facil porque tenemos el :
LOTOFILE y con FILETOBLOB
En realidad la manera más facil de todas es por código, sobre todo para un programador
Escribir
Leer
No hay comentarios:
Publicar un comentario