Я должен добавить две колонки в таблицу

И у меня есть синоним, связанный с этой таблицей

Например:

Моя таблица называется table_abc, а синонимы table_1.

Когда я пытаюсь добавить столбец в таблицу обычным способом,

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

Возникает следующая ошибка:

Невозможно изменить 'dbo.table_1', потому что это не таблица.

Есть ли правильный способ использования синонимов для добавления столбца в таблицу? или это просто неправильный способ добавить столбец?

Большое спасибо!

1
ProgrammingBaKa 25 Апр 2017 в 07:54

2 ответа

Лучший ответ

Вы не можете изменить таблицу с псевдонимом, и вы должны добавить столбец в таблицу таким образом

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

И

ALTER TABLE [dbo].[table_abc]

ADD test_2 varbinary(MAX)
1
Reversed Engineer 12 Июн 2019 в 12:41

Мы не можем изменять синонимы, созданные в таблице на Sql Server.

Мы можем только сделать

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%'
1
Chanukya 25 Апр 2017 в 05:18