基于主键的计算列规范

时间:2012-02-12 13:49:43

标签: sql-server-2008 concatenation

我想根据字符串和插入记录时生成的ID来计算字段。基本上,当ID = 1保存记录时,我需要计算字段来读取'string_1',依此类推。我正在尝试这是我的公式(('PV'+'_')+ID),其中PV是字符串,ID是插入数据的同一行中的主键字段但是我得到公式错误。如果我在ID周围添加引号,那么我只是得到PV_ID这是错误的。知道如何在我的公式中引用ID字段并获取值吗? 这是我的表行结构(ID,Computedfield,data1,data2)。我需要calculatefield使ID字段的值与字符串连接。任何帮助赞赏 的修改 使用SQL SERVER 2008 R2标准

2 个答案:

答案 0 :(得分: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 :(得分:2)

使用公式:

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

如果您想保留结果值,请在最后添加PERSISTED