sql >> Base de Datos >  >> RDS >> Sqlserver

Insertar datos varbinary en la base de datos de SQL Server

Dos problemas:

Problema n.º 1 :no use TEXT más - está en desuso. Usa un VARCHAR(n) con un tamaño adecuado de n , o si realmente debe (solo si DE VERDAD debe), use VARCHAR(MAX)

CREATE TABLE dbo.CONNECT_USER
(
    NUM_TRF int,
    NAME varchar(255),
    DESCRIPTION varchar(1000),
    REPORT varbinary(max)
)

Personalmente, también evitaría escribir TODO EN MAYÚSCULAS, ¡esto hace que sea mucho más difícil de leer! Y trataría de evitar los mensajes muy genéricos. nombres de columnas como Name o Description - no son muy intuitivos y pueden colisionar con las columnas de otras tablas y/o con las palabras clave reservadas de SQL Server. Trate de usar más expresivo , más nombres de columna relacionados con el contexto que tengan sentido en su entorno (ConnectUsername o lo que sea)

Problema n.º 2 :al hacer un INSERT , recomendaría siempre defina la columna en la que desea insertar. Esto evita sorpresas desagradables cuando se reestructura una tabla o se agregan nuevas columnas:

INSERT INTO [MY_DB_APP].[dbo].[CONNECT_USER](NUM_TRF, NAME, DESCRIPTION, REPORT)
VALUES(1, 'name', 'description', CAST('wahid' AS VARBINARY(MAX)))
GO