gpt4 book ai didi

sql-server - 使用 select * 创建 View

转载 作者:行者123 更新时间:2023-12-01 22:36:21 24 4
gpt4 key购买 nike

我使用 CREATE VIEW dbo.myView AS SELECT * FROM dbo.myTable 创建了一个 View 。当我将列添加到 dbo.myTable 时,myView 没有选择新列。有没有一种方法可以让我的 View 选择表中的所有列,即使在我添加列之后也无需更新 View ?

最佳答案

没有。您必须通过重新创建 View 或使用 sp_refreshview 来更新 View 。 .

这记录在 CREATE VIEW 中:

If a view is not created with the SCHEMABINDING clause, sp_refreshview should be run when changes are made to the objects underlying the view that affect the definition of the view. Otherwise, the view might produce unexpected results when it is queried.

SCHEMABINDING 在这里也帮不了您 - 因为这甚至会阻止您对基表进行破坏性更改。


一般来说,SELECT * ... 是一种懒惰的速记,您唯一应该使用它的地方是在 IF EXISTS() 测试中。在其他任何地方,您基本上都在为糟糕的表现做好准备(特别是如果后来有人出现并向您的表格添加一个新列,其中每一行都包含莎士比亚全集)。

关于sql-server - 使用 select * 创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com