2012-02-12 72 views
1

我有一個字段,我想根據字符串和記錄插入時生成的ID進行計算。基本上,當記錄保存ID = 1時,我需要計算的字段讀取「string_1」,依此類推。我正在嘗試這是我的公式(('PV'+'_')+ID)其中PV是字符串,ID是插入數據的同一行中的主鍵字段,但我收到公式錯誤。如果我在ID附加引號,那麼我只是得到PV_ID,這是錯誤的。任何想法如何我可以引用我的公式中的ID字段並獲取值? 這裏是我的錶行結構(ID,Computedfield,data1,data2)。我需要計算字段的ID字段的值與字符串連接。任何幫助讚賞 編輯 使用SQL Server 2008 R2標準基於主鍵的計算列規範

+0

SQL Server 2008標準 – MaxI 2012-02-12 13:53:20

+0

PV是一個字符串 – MaxI 2012-02-12 13:56:13

回答

3

你的問題是不是對前綴字符串是否是一個字符串字面量,或其他列的內容完全清楚。

如果它是一個文字,你應該能夠說:

ALTER TABLE dbo.YourTable 
ADD ComputedColumn AS 'PV_' + CAST(ID AS VARCHAR(10)) PERSISTED 

如果它是包含在另一列中輸入字符串,你應該能夠定義它像這樣

ALTER TABLE dbo.YourTable 
ADD ComputedColumn AS PV + '_' + CAST(ID AS VARCHAR(10)) PERSISTED 

假設PV是包含前綴字符串的列(類型爲VARCHAR)。

的主要觀點是:因爲你混合文字字符串和INT值,你首先能夠串聯這兩個前需要CAST的INT爲字符串。

+1

感謝花花公子。我忘了或者不知道我需要使用強制轉換並指定字符類型。 – MaxI 2012-02-12 14:04:02

2

使用公式:

('PV_'+CAST(ID as varchar)) 

如果你想保持所產生的價值 - 在結尾處添加PERSISTED

+0

謝謝,但marc_s首先回答 – MaxI 2012-02-12 14:05:38