Será que quando se declara uma variável o SQL Server usa logo o espaço?

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.

Share

You may also like...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *