복붙노트

[SQL] 어떻게 2008 SQL 서버에서이 계산 열을 변경할 수 있습니다?

SQL

어떻게 2008 SQL 서버에서이 계산 열을 변경할 수 있습니다?

나는 다음과 같은 라인을 만들어 계산 된 열이 :

alter table tbPedidos 
add restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 then 1 else 0 end as bit))

하지만, 지금 내가 좋아하는 뭔가를이 열을 변경해야합니다 :

alter table tbPedidos 
alter column restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 or restricaoValor = 1 then 1 else 0 end as bit))

그러나 그것은 작동하지 않습니다. 내가 입력 case 문에 다른 조건을 시도하고 있지만, 제대로 동작하지 않습니다.

고마워요!

해결법

  1. ==============================

    1.기존 열을 변경하려는 경우, 당신은 ADD를 사용할 수 없습니다. 대신,이 시도 :

    기존 열을 변경하려는 경우, 당신은 ADD를 사용할 수 없습니다. 대신,이 시도 :

    테이블 변경 tbPedidos 같은 ALTER 열 restricoes (캐스팅 (케이스 때 restricaoLicenca restricaoLote = 1 = 1 = 1 restricaoValor 그런 다음 1 비트 0 다른 단부))

    편집 : 위의가 올바르지 않습니다. 계산 된 열을 변경하는 경우 당신이 할 수있는 유일한 방법은 그것을 삭제하고 재 - 추가입니다.

  2. ==============================

    2.이 같은:

    이 같은:

    ALTER TABLE dbo.MyTable
    DROP COLUMN OldComputedColumn
    
    ALTER TABLE dbo.MyTable
    ADD OldComputedColumn AS OtherColumn + 10
    

    출처

  3. ==============================

    3.이것은 쉽고 빠르게 단지 SQL Server 관리 Studio의 다이어그램 기능을 사용할 수 있습니다 이러한 상황 중 하나입니다.

    이것은 쉽고 빠르게 단지 SQL Server 관리 Studio의 다이어그램 기능을 사용할 수 있습니다 이러한 상황 중 하나입니다.

    SSMS에서이 방법을 수행하면 추가가 보장하지 않습니다 ... 당신의 테이블의 컬럼의 순서, 간단한 드롭을 유지합니다. 이것은 일부 중요 할 수있다.

  4. ==============================

    4.누군가에게 도움이 될 수있는 또 다른 것은 테이블 (다음 쿼리는 SQL입니다)에서 계산 된 컬럼의 기능을 수정하는 방법입니다 :

    누군가에게 도움이 될 수있는 또 다른 것은 테이블 (다음 쿼리는 SQL입니다)에서 계산 된 컬럼의 기능을 수정하는 방법입니다 :

    ALTER <table>
    DROP COLUMN <column>
    
    ALTER FUNCTION <function>
    (
    <parameters>
    )
    RETURNS <type>
    BEGIN
    ...
    END
    
    ALTER <table>
    ADD <column> as dbo.<function>(parameters)
    

    노트:

  5. from https://stackoverflow.com/questions/2372655/how-can-i-alter-this-computed-column-in-sql-server-2008 by cc-by-sa and MIT license