¿Cómo actualizo un campo BLOB solo usando TSQL (por ejemplo de SSMS y no usando ningún código como ADO.Net o Linq)?Cómo actualizar un BLOB en SQL SERVER usando TSQL
8
A
Respuesta
12
Hay dos formas de seleccionar un BLOB con TSQL:
SELECT * FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
, así como:
SELECT BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
anote el nombre de correlación después de la cláusula FROM, que es obligatorio.
La segunda versión se puede utilizar para una actualización como en el siguiente ejemplo:
UPDATE MyTable
SET blobField =
(SELECT BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a)
WHERE (CriteriaField = @criteria)
Para actualizaciones parciales se puede utilizar el mutador SET .WRITE como se describe en this MSDN article, aquí se muestra la sintaxis:
UPDATE MyTable SET BlobField .WRITE (expression, @offset, @length) WHERE (CriteriaField = @criteria)
Tenga en cuenta que el mutador WRITE solo se puede utilizar en campos NON-NULL.
De hecho, esto también se puede utilizar para realizar una actualización completa (si la columna no contiene NULL), estableciendo @offset en 0 y @length en NULL (o en la longitud real), como en el siguiente ejemplo :
DECLARE @tmp VARBINARY(MAX) --Change to the correct datatype here
SELECT @tmp = BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a
UPDATE MyTable SET BlobField .WRITE (@tmp, 0, NULL) WHERE (CriteriaField = @criteria)
Cuestiones relacionadas
- 1. Cómo declarar un blob en SQL Server
- 2. BLOB to String, SQL Server
- 3. ¿Cómo cargo un archivo a una columna varbinary (max) en SQL Server 2008, usando TSQL?
- 4. Cómo actualizar la resolución de conflictos al actualizar de SQL-Server 2005 a SQL-Server 2008
- 5. ¿Cómo uso BCP o Sql Server Management Studio para obtener datos BLOB de SQL Server?
- 6. TSQL: ACTUALIZAR con INSERT INTO SELECT FROM
- 7. ¿Cómo actualizar por partes un blob en SQLite?
- 8. Actualizar con un cursor en SQL Server 2008 R2
- 9. Comando TSQL para conectarse a otro servidor (SQL Server 2005)
- 10. Actualizar usando LINQ to SQL
- 11. Actualizar SQL Server 2008 a 2008 R2
- 12. Cómo insertar un blob en una base de datos utilizando SQL Server Management Studio
- 13. inserta un BLOB mediante un script sql?
- 14. SQL Server gatillo conmutador Insertar, eliminar, actualizar
- 15. SQL Server - unión interna al actualizar
- 16. TSQL SELECT luego ACTUALIZAR en una transacción, luego devolver SELECCIONAR
- 17. Copiar valores BLOB entre bases de datos con SQL puro en SQL Server
- 18. ¿Cómo puedo actualizar mi Sql Server CE 3.5 sdf a Sql Server CE 4.0?
- 19. Cómo SQL Server crea uniqueidentifier usando NEWID()
- 20. Pivot usando SQL Server 2000
- 21. Actualizar el valor del nodo XML en SQL Server
- 22. ¿Cómo actualizar una parte de la cadena usando la función de reemplazo en tsql?
- 23. TransactionInDoubtException usando System.Transactions en SQL Server 2005
- 24. TSQL: actualizar una columna como null
- 25. En SQL Server, ¿cómo sé qué modo de transacción estoy usando actualmente?
- 26. SQL Server OFFSET equivalente
- 27. ¿Actualizar de SQL Server 2008 Standard a Developer?
- 28. ¿Eliminar registros duplicados en SQL Server?
- 29. ¿Cómo puedo agregar/concatenar datos BLOB a una columna BLOB usando el comando SQL UPDATE en ORACLE
- 30. Usando una base de datos .MDF SQL Server con ASP.NET versus usando SQL Server
de hecho la primera versión de la instrucción SELECT es realmente nada más que el segundo SELECT simplemente utilizando en su lugar SELECT *, todavía lo incluí como una versión separada ya que esto es lo que el MSDN y otros recursos en línea utilizan en los ejemplos y parece que muchos desarrolladores piensan que es la única forma de hacerlo –