SQL Server Mgmt Studio让我发疯.
如果我从表创建一个视图和SELECT'*',它就可以了,我可以保存视图.查看视图的SQL(例如,通过编写CREATE脚本)可以看出'SELECT*'确实保存在视图的SQL中.
但是只要我使用GUI重新打开视图(右键单击>修改),SELECT*就会替换为表中所有列的列列表.
如何阻止Management Studio执行此操作?我希望我的'SELECT*'保持这一点.
也许这只是谷歌搜索"SELECT*"的困难,这使我无法找到与此相关的任何东西(我确实把它放在双引号中).
请,我在Transact-SQL方面经验丰富,所以请不要给我讲一讲为什么我不应该使用SELECT*.我知道所有的利弊,我有时会使用它.它是一种语言功能,并且像所有语言功能都可以用于善或恶(我强调不同意它永远不适合使用它).
编辑:我正在给Marc答案,因为似乎无法关闭此行为.问题被认为是封闭的.我注意到企业管理器没有类似的东西.解决方法是将SQL编辑为文本,或转到Managment Studio以外的产品.或者不断编辑列列表,并在每次编辑视图时替换*.叹.
当 SQL Server Mgmt Studio 创建视图时,我假设他们将 * 扩展为在特定时间基础表中存在的列的完整列表,正是出于以下原因:如果基础表之一发生更改怎么办?您是否希望新列只是简单地显示在引用该表的每个视图中?严重地???
我认为微软试图在这里实现“最不令人惊讶的元素”——你的视图将包含创建视图时出现的那些列——并且它会保持这种状态,除非你明确地、有意地改变它。
当基础表发生变化时,我不想让我的视图突然拥有比以前更多的列……你呢?
抱歉,我认为 Mgmt Studio 中没有任何设置可以关闭此行为。
| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |