UPDATE CustomerPhone
SET PhoneTypeID = 7, PhoneNumber = 999-444
WHERE CustomerID = 500 AND PhoneNumber = 9-1-1;
PhoneNumber имеет тип varchar (20), тогда как PhoneTypeID и CustomerID имеют интервал типа. Я выполняю вышеупомянутый оператор в SQL Server, он хорошо работает.
Интересно, каким образом это работает? Я думал, что любое строковое значение должно быть помещено между '...'
SQL Server CAST
или CONVERT
значение, которое вы ему передаете, когда вы указываете значение, тип которого не соответствует ожидаемому.
т.е. Пытаться:
SELECT * FROM CustomerPhone WHERE PhoneTypeID = '7'
Здесь SQL Server возьмет вашу строку '7'
и попытается преобразовать ее в соответствующий тип int, smallint, tinyint (в зависимости от обстоятельств) .