2017-04-25 3 views
1
나는 테이블

는 TSQL은 동의어

에 두 개의 열을 추가 할 필요가

를 사용하여 열을 추가하고 나는 예를 들어 해당 테이블

과 관련된 동의어가 :

내 테이블 이름 table_abc하고를 동의어가 된 table_1

내가 정상적인 방법으로 테이블에 열을 추가하려고한다

ALTER TABLE [dbo].[table_1] 
ADD test_1 varbinary(MAX), 
test_2 varbinary(MAX); 

다음과 같은 오류가 발생합니다 : 그것은 테이블이 아니기 때문에

가 'dbo.table_1'을 변경할 수 없습니다.

동의어를 사용하여 테이블에 열을 추가하는 올바른 방법이 있습니까? 또는 열을 추가하는 것은 잘못된 방법일까요?

고맙습니다.

답변

1

U는 별명을 가진 테이블을 변경할 수 없으며 우리는 SQL 서버 테이블에 생성 된 동의어를 변경할 수 없습니다

ALTER TABLE [dbo].[table_abc] 
    ADD test_1 varbinary(MAX) 

ALTER TABLE [dbo].[table_abc] 

ADD test_2 varbinary(MAX) 
+0

하지만 별칭을 사용하여 테이블을 변경할 수 있습니까? 이후 나는 다른 서버에서 테이블을 변경해야하고 테이블 이름은 서버와 다를 수 있지만 동일한 동의어와 함께 – ProgrammingBaKa

+0

@ProgrammingBaKa 그것은 별칭 이름으로 테이블을 변경할 수 없습니다 – Chanukya

+0

답변 주셔서 감사합니다, 어쩌면 내가 원래 테이블 이름을하려고합니다 동의어에서 동적 SQL을 사용하여> ___> – ProgrammingBaKa

1

이런 식으로 테이블 에 열을 추가해야 . 우리는 기본 테이블을 변경하려는 경우 우리는

CREATE SYNONYM (Transact-SQL) 
DROP SYNONYM (Transact-SQL) 

을 할 수

alter table table_abc 
add test_1 varbinary(MAX), 
test_2 varbinary(MAX); 

** ** 동의어 이름에서 테이블 이름을 얻으려면

SELECT base_object_name,* FROM sys.synonyms where name like'%Synonym name%'