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

PhoneNumber 是 varchar(20) 类型,而 PhoneTypeID 和 CustomerID 是 int 类型。我在 SQL Server 中运行上述语句,它工作正常。

我想知道它是如何工作的?我认为任何字符串值都必须放在'...'之间

4

1 回答 1

2

当您指定的值不是您期望的类型时,SQL Server 将CAST或您传递的值。CONVERT

即尝试: SELECT * FROM CustomerPhone WHERE PhoneTypeID = '7'

在这里,SQL Server 将获取您的字符串'7'并尝试将其转换为适当的 int、smallint、tinyint 类型(任何适当的类型)。

于 2010-05-30T12:33:15.413 回答