Если вы опустите размер, по умолчанию будет 30. См. Это:
http://msdn.microsoft.com/en-us/library/ms186939.aspx
Чтобы увидеть это в действии, попробуйте выполнить следующие операторы:
--outputs: 12345678901234567890.098765432
select cast (12345678901234567890.098765432 as nvarchar)
--throws "Arithmetic overflow error converting expression to data type nvarchar."
select cast (12345678901234567890.0987654321 as nvarchar)
--outputs: 12345678901234567890.0987654321
select cast (12345678901234567890.0987654321 as nvarchar(31))
Комментарий @ Крула; 30 - длина по умолчанию для CAST; однако длина по умолчанию для определения данных или объявления переменной равна 1.
Примечание: есть также функция STR , которая преобразует числовые поля в строки, для которых длина по умолчанию равна 10.
--outputs: 1234567890
select str(1234567890)
--outputs: **********
select str(12345678901)
--outputs: 12345678901
select str(12345678901,11)