UPDATE CustomerPhone
SET PhoneTypeID = 7, PhoneNumber = 999-444
WHERE CustomerID = 500 AND PhoneNumber = 9-1-1;
PhoneNumber的类型为varchar(20),而PhoneTypeID和CustomerID的类型为int。我在SQL Server中运行上面的语句,它工作正常。
我想知道它是如何运作的?我认为任何字符串值都必须放在'...'
之间答案 0 :(得分:2)
当您指定的值不是您期望的类型时,SQL Server将CAST
或CONVERT
传递给它的值。
即。尝试:
SELECT * FROM CustomerPhone WHERE PhoneTypeID = '7'
此处SQL Server将使用您的字符串'7'
并尝试转换为适当类型的int,smallint,tinyint(适当的)。