2016-09-30 2 views
0

계산 된 열의 일부 값을 변경할 수 있습니까? 값이 다른 시스템에 연결되어 있고 그 중 3 개를 변경해야하기 때문에 필요합니다.계산 된 열의 일부 행에 특정 하드 코딩 된 값 추가

우리의 계산 열은 다음과 같습니다

('Product-'+CONVERT([NVARCHAR](100),(1000)+[Id],(0))) 

내가 지금 값 Product-1356, Product-1655Product-1701Product-12에, Product-17Product-18 (예를 들어, 값을) 변경해야합니다. 이 세 가지는 하드 코딩되어야합니다. 나머지는 이전과 같이 계산되어야합니다.

나는 일반적으로 T-SQL 사용하여 업데이트를 시도했다 :

UPDATE MyTable 
SET ProductId = 'Product-12' 
WHERE ProductId = 'Product-1356' 

을하지만 지금은 다음과 같은 오류를 받고 있어요 :

The column "ProductId" cannot be modified because it is either a computed column or is the result of a UNION operator.

또한 때문에 작동하지 않았다 Id 열을 업데이트 기본 키입니다.

Cannot update identity column 'Id'.

어떻게하면됩니까? 심지어 가능할까요? 내가 생각할 수있는

답변

2

두 가지 옵션 :

  1. 그 행을 삭제하고 올바른 아이디로 다시 추가.
  2. ProductIdOverride의 새 열을 설정하고 여기에 하드 코딩 된 ID를 넣으십시오. 기존 수식을 사용하려면 Null을 그대로 두십시오. 그런 다음 계산 된 항목을 COALESCE(ProductIdOverride, ('Product-'+CONVERT([NVARCHAR](100),(1000)+[Id],(0))))
으로 변경하십시오.
관련 문제