Строковые столбцы обновления без Использования единственных цитат - общий вопрос

UPDATE CustomerPhone 
SET PhoneTypeID = 7, PhoneNumber = 999-444
WHERE CustomerID = 500 AND PhoneNumber = 9-1-1;

PhoneNumber имеет тип varchar (20), тогда как PhoneTypeID и CustomerID имеют интервал типа. Я выполняю вышеупомянутый оператор в SQL Server, он хорошо работает.

Интересно, каким образом это работает? Я думал, что любое строковое значение должно быть помещено между '...'

1
задан marc_s 24 June 2010 в 11:00
поделиться

1 ответ

SQL Server CAST или CONVERT значение, которое вы ему передаете, когда вы указываете значение, тип которого не соответствует ожидаемому.

т.е. Пытаться: SELECT * FROM CustomerPhone WHERE PhoneTypeID = '7'

Здесь SQL Server возьмет вашу строку '7' и попытается преобразовать ее в соответствующий тип int, smallint, tinyint (в зависимости от обстоятельств) .

2
ответ дан 3 September 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: