Кто-нибудь знает причины, по которым работает следующая строка кода T-SQL (под SQL Server 2008)?
SELECT cast(2 as real(10))
Я ожидаю, что сервер будет жаловаться так же, как и при попытке:
declare @x real(10)
set @x = 4.1234567
select @x
и я получаю:
Msg 2716, Level 16, State 1, Line 16
Column, parameter, or variable #2: Cannot specify a column width on data type real.
Я понимаю, что для MS SQL 2008 существует тип данных REAL, эквивалентный FLOAT (24).
Мне просто хотелось бы знать, почему CAST не жалуется, т. Е. В CAST можно было писать глупости как REAL (4,2) (под SQL 2000), он отлично работает с REAL (10) под SQL 2008 снова в CAST)?
Любые предложения и разъяснения приветствуются. Спасибо.