Insérer des données varbinary dans la base de données SQL Server
J'ai cette table:
(<NUM_TRF int
,<NAME, varchar(255),>
,<DESCRIPTION, text,>
,<REPORT, varbinary(max),>)
J'essaie de créer un script dans SQL Server 2008, afin d'insérer une ligne dans ma base de données locale,
INSERT INTO [MY_DB_APP].[dbo].[CONNECT_USER]
VALUES(1, 'name', 'description', Cast('wahid' As varbinary(max)) )
GO
mais j'obtiens cette erreur:
Chaîne ou des données binaires d'être tronquée.
La déclaration a été résilié.
source d'informationauteur Wahid Gazzah
Vous devez vous connecter pour publier un commentaire.
Deux questions:
Le numéro 1: ne pas utiliser
TEXT
plus - c'est obsolète. Utiliser unVARCHAR(n)
avec une taille appropriée den
ou si vous vraiment doit (seulement si vous VRAIMENT doit), l'utilisationVARCHAR(MAX)
Je serais personnellement aussi éviter d'écrire TOUT EN MAJUSCULES - ce tout simplement qu'il est donc beaucoup plus difficile à lire! Et je voudrais essayer d'éviter de très générique les noms de colonnes comme
Name
ouDescription
- ceux qui ne sont pas très intuitive, et pourrait entrer en collision avec d'autres colonnes de la table et /ou avec SQL Server mots clés réservés. Essayez d'utiliser plus expressifplus liées au contexte de la colonne des noms qui ont un sens dans votre environnement (ConnectUsername
ou quoi que ce soit)Question #2: lorsque vous faites une
INSERT
je le recommande à toujours définir la colonne que vous souhaitez insérer dans. Cela évite les mauvaises surprises lorsqu'une table est restructurée ou de nouvelles colonnes sont ajoutées: