Eu sei que posso já ser considerado da “velha guarda”.
Aprendi a programar com 11 anos, há mais anos do que muitos colegas meus têm de vida.
Se calhar é por isso gosto de ver coisas feitas à moda antiga. Uma delas é ver todos os declare no topo do script.
E de repente:
Mas assim apenas declaro mais abaixo e só aí vou usar o espaço da variável.
Mas quando fazes o declare não usas o espaço, só quando fazes o set.
Vamos ver se tenho razão?
Vamos declarar um nvarchar sem lhe dar valor e ver o que acontece?
declare @nvc nvarchar(255) select Data_Lenght = datalength(@nvc) set @nvc = '1' select Data_Lenght = datalength(@nvc)
Pronto, é um varchar, pode ser isso…
Decerto não vai acontecer com um char.
declare @c char(255) select Data_Lenght = datalength(@c) set @c = '1' select Data_Lenght = datalength(@c)
Afinal acontece.
E com mais alguns exemplos?
declare @i int select Data_Lenght = datalength(@i) set @i = 1 select Data_Lenght = datalength(@i)
declare @b bigint select Data_Lenght = datalength(@b) set @b = 1 select Data_Lenght = datalength(@b)
declare @d date select Data_Lenght = datalength(@d) set @d = GETDATE() select Data_Lenght = datalength(@d)
declare @dt2 datetime2 select Data_Lenght = datalength(@dt2) set @dt2 = GETDATE() select Data_Lenght = datalength(@dt2)
Afinal…
“Mas quando fazes o declare não usas o espaço, só quando fazes o set.”
Certo.