是否有可能更改计算列的某些值?我们需要它,因为值连接到另一个系统,其中三个必须更改。
我们的计算列如下所示:
('Product-'+CONVERT([NVARCHAR](100),(1000)+[Id],(0)))
我现在必须将值Product-1356
,Product-1655
和Product-1701
更改为Product-12
,Product-17
和Product-18
(示例值)。这三个必须硬编码。其余的必须像以前一样计算。
我尝试使用T-SQL正常更新它:
UPDATE MyTable
SET ProductId = 'Product-12'
WHERE ProductId = 'Product-1356'
但现在我收到以下错误:
无法修改“ProductId”列,因为它是计算列或是UNION运算符的结果。
同时更新Id
列无效,因为它是主键:
无法更新标识列'Id'。
我该怎么做?它甚至可能吗?
答案 0 :(得分:2)
我能想到的两个选择:
COALESCE(ProductIdOverride, ('Product-'+CONVERT([NVARCHAR](100),(1000)+[Id],(0))))