婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server數據類型轉換方法

SQL Server數據類型轉換方法

熱門標簽:臺灣外呼系統軟件 南京怎么申請400這種電話 南通智能外呼系統怎么樣 地圖標注可以編輯地名嗎 地圖標注跑線下市場 疫情時期電話機器人 真3地圖標注 濮陽清豐400開頭的電話申請 樂昌電話機器人

在SQL Server日常的函數、存儲過程和SQL語句中,經常會用到不同數據類型的轉換。在SQL Server有兩種數據轉換類型:一種是顯性數據轉換;另一種是隱性數據轉換。下面分別對這兩種數據類型轉換進行簡要的說明:

1 顯式轉換

顯示轉換是將某種數據類型的表達式顯式轉換為另一種數據類型。常用的是CAST 和 CONVERT 函數。

 CAST: CAST ( expression AS data_type )
 CONVERT: CONVERT (data_type[(length)], expression [, style])

參數 expression 是任何有效的 Microsoft SQL Server表達式。data_type 目標系統所提供的數據類型,不能使用用戶定義的數據類型。

2 隱性轉換

隱性轉換對于用戶是不可見的,由SQL Server 引擎自動處理。 隱性轉換自動將數據從一種數據類型轉換成另一種數據類型。例如,如果一個 smallint 變量和一個 int 變量相比較,這個 smallint 變量在比較前即被隱性轉換成 int 變量。 當從一個 SQL Server 對象的數據類型向另一個轉換時,一些隱性和顯式數據類型轉換是不支持的。例如,nchar 數值根本就不能被轉換成 image 數值。nchar 只能顯式地轉換成 binary,隱性地轉換到 binary 是不支持的。nchar 可以顯式地或者隱性地轉換成 nvarchar。

3 隱性轉換的風險

隱性轉換有的時候非常方便,可以簡化SQL 腳本,但是這里面也孕育著潛在的風險,可能會出現在腳本一開始運行的時候都是正常的,但卻某一個時間點之后,程序莫名出現錯誤。下面舉一個現實項目中的例子來說明。在SQL Server 2008中有一個表,需要從兩個不同的數據表中拉取數據,由于這兩個數據表屬于不同的系統,其主鍵類型是不同的,一個是int類型,一個是GUID,一開始想著這兩個都可以轉換成字符類型進行存儲。所以就在表中建立一個nvarchar(50)的混合ID列作為主鍵。如下圖所示:

一開始拉取的數據并未有GUID的值,都是INT類型轉換過來的數據,所以SQL腳本運行的正常,但是突然某一次運行時,出現了“在將 nvarchar 值 '4C185367-F004-41FE-8A0A-DB4E819B1FF2' 轉換成數據類型 int 時失敗?!钡腻e誤。如下圖所示:

定位到腳本,執行的SQL如下:

select * from dbo.Demo where 混合ID=305

其中主鍵中的數據有GUID轉換的字符型,也有INT轉換的字符串,示例數據如下:

但是如果執行下面的SQL,則都是正常執行:

select * from dbo.Demo where 混合ID=305 and 名稱='INT'

select * from dbo.Demo where 混合ID=305 and 序號='2'

select * from dbo.Demo where 混合ID=305 and 序號=2

select * from dbo.Demo where 混合ID='305' and 名稱='INT'

select * from dbo.Demo where 混合ID='305'

結果如下:

出現上述錯誤的結果應該是這樣的:

select * from dbo.Demo where 混合ID=305在執行時,SQL Server會將nvarchar類型的隱性轉換成int類型,如果數據中沒有GUID類型的字符,則轉換正常,如果有,當進行GUID字符到INT的隱性轉換時,則轉換失敗。

以上就是本文的全部內容,希望對大家進行SQL Server數據類型轉換有所幫助。

您可能感興趣的文章:
  • 詳解SQL Server中的數據類型
  • 詳解MySQL數據類型int(M)中M的含義
  • mysql存儲引擎和數據類型(二)
  • Java數據類型與MySql數據類型對照表
  • SQL Server比較常見數據類型詳解
  • SQLite教程(七):數據類型詳解
  • SQL Server數據類型char、nchar、varchar、nvarchar的區別淺析
  • sql使用cast進行數據類型轉換示例
  • SQL2005中char nchar varchar nvarchar數據類型的區別和使用環境講解
  • SQL的常用數據類型列表詳解

標簽:通遼 陜西 河北 阿里 馬鞍山 福建 廣安 南京

巨人網絡通訊聲明:本文標題《SQL Server數據類型轉換方法》,本文關鍵詞  SQL,Server,數據,類型,轉換,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server數據類型轉換方法》相關的同類信息!
  • 本頁收集關于SQL Server數據類型轉換方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 江城| 澄迈县| 独山县| 广东省| 军事| 婺源县| 集安市| 皮山县| 昌江| 大新县| 正阳县| 天门市| 宣恩县| 集贤县| 确山县| 河曲县| 年辖:市辖区| 鄄城县| 庆安县| 辰溪县| 五台县| 鄱阳县| 通州市| 石家庄市| 黄骅市| 中卫市| 府谷县| 大新县| 敖汉旗| 老河口市| 托克托县| 江北区| 城步| 中方县| 盐亭县| 叶城县| 江城| 韩城市| 舟曲县| 武冈市| 张家界市|