2014-10-16 25 views
1

有沒有一種方法來創建這樣一個計算列如下:Compued列FOR XML RAW HASHBYTES

HASHBYTES('SHA1', (SELECT [EmployeeID],[ClientID] FOR XML RAW)) 

我想保持它FOR XML RAW,因爲這是它是如何在其他地方完成,但跟它子查詢不能在計算列中使用。

回答

0

我繼續改變計算HASHBYTES功能的標量表達式模擬相同如下所示:

HASHBYTES('SHA1', ISNULL(CONVERT(varchar(20),[EmployeeID]),'') + '|' + ISNULL(CONVERT(varchar(20),[ClientID]),'')) 

這處理的數據相當少於使用FOR XML RAW並且似乎提供了我需要的功能,因爲它可用作持久計算的列

-1

FOR XML RAW實際上創建了這種形式的XML

<row EmployeeID="1" ClientID="1"/> 

我們可以使用像下面

mycol AS 
HASHBYTES('SHA1', 
('<row EmployeeID ="' + 
    cast(EmployeeId as varchar(10))+ ' ClientId ="' + 
    cast(ClientID as varchar(10)) + '"/>')) 
+0

這並未解決非數字值可能需要的正確數據序列化。 – 2015-06-29 18:46:36