Simple question - why when I print the value of the @len
variable in the query below would I be getting the value 1, instead of 12 (the number of characters in the
Your declaration of @string
is wrong. You have no length on the varchar
.
Try this:
declare @string varchar(255); -- or whatever
You just learned that the default in this situation is 1.
This is clearly specified in the documentation. As a further note, MS SQL seems to make this rather complicated:
When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified when using the CAST and CONVERT functions, the default length is 30.
The right habit is to always include the length when using varchar
or nvarchar
.
Becvause varChar
without a length specification is taken as varChar(1)
replace varchar
with varChar(30)
or varChar(max)
You need to give the variable @string an actual length. Print the variable @string and it will probably return 'C'.