SQL Server与未使用的Oracle Alter Table Set列相似吗?

时间:2010-01-28 22:43:35

标签: sql-server sql-server-2005 oracle

在Microsoft SQL Server(2005,最好是)中是否存在将Oracle设置为未使用的Oracle功能的并行?例如:

ALTER TABLE Person SET UNUSED Nickname;

搜索中没有任何内容,所以我的想法是此功能必须是Oracle特定的。

2 个答案:

答案 0 :(得分:2)

不要认为在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 :(得分:1)

没有等效的声明,但根据您的需要,您可能会编写一个触发器来回滚任何更改。