Comment rigide est la taille maximale d'un VARCHAR dans SQL Server?
-
20-09-2019 - |
Question
i.e.. si je crée un champ VARCHAR (50), ce qui se passe si je tente de lui attribuer une valeur qui est de 100 caractères?
Will SQL Server m'a laissé faire cela? Est-il en quelque sorte moins efficace?
La solution
Will SQL Server m'a laissé faire cela? Est-il en quelque sorte moins efficace?
Il émet une erreur, en disant que les données de chaîne ou binaires seront tronquées.
Autres conseils
Si vous essayez de forcer une grande chaîne dans une variable plus petite taille, la chaîne entrant sera simplement coupée à la taille appropriée.
declare @Variable varchar (50)
set @Variable = replace (SPACE (100), ' ' , '.')
print @Variable
la sortie est de 50 caractères
..................................................
Si vous essayez de forcer une grande chaîne dans une petite taille d'un terrain dans un tableau, une erreur sera élevée
declare @MyTable Table
(
TestVariable varchar (50)
)
insert into @MyTable (TestVariable) select replace (SPACE (100), ' ' , '.')
select * from @MyTable
la sortie est
Msg 8152, Level 16, State 14, Line 6
String or binary data would be truncated.
The statement has been terminated.
TestVariable
------------------------------------------------
Il lancera une erreur indiquant que la valeur serait tronquée. Il ne sera pas écrire plus que les 50 caractères que vous avez spécifié, sinon vous ne seriez pas en mesure d'empêcher la taille de la ligne de contrôle de plus en plus hors