【发布时间】:2016-03-29 03:39:07
【问题描述】:
我相信有一个新功能可以将列定义为HIDDEN,以便SELECT * 返回除隐藏列之外的所有列。
这可能吗?如果是,您将如何使用 SQL Server 2016 或 SQL Azure 实现它?
【问题讨论】:
-
没有。不可能。您必须明确指定列名。无论如何,您不应该在查询中使用
SELECT *。您将获得额外的不需要的列,如果将来修改表,您的查询可能会中断 -
HIDDEN指的是DATETIME2列,用于记录与新时态表功能相关的记录的开始/结束时间。 msdn.microsoft.com/en-us/library/dn935015.aspx -
该功能仅适用于时态表,有隐藏列功能选项很好
-
您可以选择您感兴趣的列/使用视图来屏蔽列(如果关注列安全性,还可以授予视图权限)
-
聚会有点晚了,但是关于您在下面关于必须重构存储过程的评论,编写一个动态存储过程创建脚本以从数据模型,除了那些你特别不想要的。然后在升级软件/数据库时执行该脚本。在那之后,除非您对程序进行真正的更改,否则您永远不必再次查看该过程。
标签: sql-server azure-sql-database sql-server-2016