Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer des données varbinary dans la base de données SQL Server

Deux problèmes :

Problème 1 :ne pas utiliser TEXT plus - il est obsolète. Utiliser un VARCHAR(n) avec une taille appropriée de n , ou si vous vraiment devez (seulement si vous VRAIMENT doit), utilisez VARCHAR(MAX)

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

Personnellement, j'éviterais aussi d'écrire TOUT EN MAJUSCULES - cela rend la lecture tellement plus difficile ! Et j'essaierais d'éviter les éléments très génériques les noms de colonne comme Name ou Description - ceux-ci ne sont pas très intuitifs et peuvent entrer en collision avec les colonnes d'autres tables et / ou avec des mots-clés réservés SQL Server. Essayez d'utiliser plus expressif , davantage de noms de colonnes liés au contexte qui ont un sens dans votre environnement (ConnectUsername ou autre)

Problème 2 :lors d'un INSERT , je recommanderais de toujours définissez la colonne dans laquelle vous souhaitez insérer. Cela évite les mauvaises surprises lors de la restructuration d'un tableau ou de l'ajout de nouvelles colonnes :

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