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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top