【问题标题】:How do you modify existing table columns to HIDDEN in SQL Server 2016?如何在 SQL Server 2016 中将现有表列修改为 HIDDEN?
【发布时间】: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


【解决方案1】:

将来自 cmets 的信息添加到答案中..

我们不能将列指定为隐藏并执行选择 *,它会返回除隐藏之外的所有列,例如临时表。此外,此功能仅适用于有效从,有效到列,尽管拥有这样的功能很好。作为 Satya提到您可以使用视图来实现或多或少的相同。

【讨论】:

  • 好吧,真可惜。似乎是一个有用的功能。目前,每次添加一列时,我们都必须重构所有存储过程,因为我们不想要一个特定的列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多