2014-02-05 174 views
0

對待一個錯誤,我注意到,SQL Server 2000中執行完整的數據類型和字符串之間的隱式轉換,即使沒有警告。因此,下面的查詢:隱式轉換

SELECT LEFT(123456789, '3') 

返回字符串123

這是在SQL Server 2000中的錯誤(功能)? T-SQL的功能?還是SQL本身的一個特性?

回答

5

docs for LEFT狀態

一個character_expression

         是字符或 二進制數據的一種表現。 character_expression可以是常量,變量或 列。 character_expression可以是任何數據類型,但text或 ntext可以隱式轉換爲varchar或nvarchar。 否則,使用CAST函數顯式轉換 一個character_expression。

integer_expression

         是一個正整數,指定 的一個character_expression的衆多人物怎麼會被退回。

該文檔的Data Type Conversion頁面清楚地顯示哪些對類型可以隱式轉換之間。 intvarchar之間的轉換是在兩個方向上隱。

所以我們談論的功能,而不是錯誤;我會說T-SQL而不是SQL,因爲我猜測標準不會談論這樣的事情。但這只是一個猜測。

+0

你是正確的。感謝您的回答,請原諒我懶惰查看文檔。 – rucamzu