Если вы опустите длину, по умолчанию будет один символ .
Например: varchar
является синонимом varchar(1)
.
Одним из способов определения длины в одном месте является тип , например:
create type Domain from varchar(30) not null;
Затем вы можете использовать этот новый тип в других определениях:
create procedure TestProcedure @par1 domain as select @par1
go
create table TestTable (col1 domain)
Однако вы не можете изменить определение типа, не отбросив все, что его использует.
По моему опыту, изменения длины данных редки, и когда они происходят, их легко рефакторировать вручную. Так что я бы придерживался varchar(x)
вместо type
.