SQL Server параллельно с колонкой набора таблиц Oracle Alter не используется? - PullRequest
3 голосов
/ 29 января 2010

Существует ли параллель в Microsoft SQL Server (предпочтительно 2005 г.) для функциональности Oracle по установке столбца, который не используется? Например:

ALTER TABLE Person SET UNUSED Nickname;

В поисках ничего не появляется, поэтому я думаю, что эта функция должна быть специфичной для Oracle.

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Не думайте, что в SQL-сервере есть что-то подобное.

Вы можете создать отношение 1: 1 к новой таблице, содержащей скрытые столбцы:

insert into NewTable
select (keycol, Nickname) from ExistingTable

alter table ExistingTable drop column Nickname

Таким образом, у вас все еще есть данные, но столбец находится в таблице, о которой никто не знает.

В качестве альтернативы вы можете использовать разрешения на уровне столбца:

DENY SELECT (Nickname) ON ExistingTable TO domain\user
DENY SELECT (Nickname) ON ExistingTable TO public
...

Это вернет ошибку, когда кто-то попытается прочитать столбец. Большим недостатком этого метода является то, что select * также потерпит неудачу.

1 голос
/ 29 января 2010

Эквивалентного утверждения нет, но в зависимости от ваших потребностей, вы можете написать триггер для отката любых изменений, если они были сделаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...