【问题标题】:Why does SQL Server's GUI mangle my views?为什么 SQL Server 的 GUI 会破坏我的视图?
【发布时间】:2008-11-04 17:19:31
【问题描述】:

当我在 SQL Server 2005 中创建视图并且后来有人在 GUI 修改模式下打开它时,它有时会完全重新排列我的连接。通常,它实际上不再可读。如果我在 GUI 中查看它,它也会与我最初编写的内容有所不同。有时,连接线甚至不再指向某个字段,并且连接符号具有“fx”。我认为它已经为我“优化”了它。有没有办法防止这种情况发生? “fx”是什么意思?

原来是这样的:

FROM dbo.Stop 左外连接 dbo.StopType ON dbo.Stop.StopTypeID = dbo.StopType.StopTypeID 左外连接 dbo.CityState ON dbo.Stop.City = dbo.CityState.City AND dbo.Stop.State = dbo.CityState.State 左外连接 dbo.vwDrivers ON dbo.Stop.DriverID = dbo.vwDrivers.DriverID 左外连接 dbo.truck ON dbo.Truck.TruckID = dbo.Stop.TruckID 内部加入 dbo.vwTicketIDFirstStopLastStop ON dbo.vwTicketIDFirstStopLastStop.TicketID = dbo.stop.ticketid 左外连接 dbo.Company ON dbo.Company.CompanyID = dbo.vwTicketIDFirstStopLastStop.BillToCompanyID

现在是这个。

来自 dbo.Truck 右外连接 dbo.Stop INNER JOIN dbo.StopType ON dbo.Stop.StopTypeID = dbo.StopType.StopTypeID 左外连接 dbo.CityState ON dbo.Stop.City = dbo.CityState.City AND dbo.Stop.State = dbo.CityState.State 左外连接 dbo.vwDrivers ON dbo.Stop.DriverID = dbo.vwDrivers.DriverID ON dbo.Truck.TruckID = dbo.Stop.TruckID 左外连接 dbo.vwTicketIDFirstStopLastStop 左外连接 dbo.Company ON dbo.Company.CompanyID = dbo.vwTicketIDFirstStopLastStop.BillToCompanyID ON dbo.vwTicketIDFirstStopLastStop.TicketID = dbostop.ticketid

【问题讨论】:

  • 您能给我们举一个初始视图和重新排列视图的示例吗?
  • 我在原始问题中添加了一个示例,谢谢。
  • 我讨厌它这样做。不过,查询设计器很适合从避免打字开始。 Frick'n Frontpage 曾经用 HTML 做同样的事情 - 我 讨厌 甚至更多。

标签: sql-server


【解决方案1】:

不,你不能。这就是为什么你永远不应该使用它。

“Fx”表示连接不是简单的列到列的链接,而是涉及到一个函数(当然这也是它不能指向字段的原因)。不过,它不应该自己这样做,

【讨论】:

  • 如果有办法训练我的同事停止这样做就好了。
【解决方案2】:

我讨厌视图 GUI

我使用 RightClick->ScriptViewAs->Alter To->New Query Editor Window

好多了:)

【讨论】:

    【解决方案3】:

    这是视图 GUI 将 SQL 解析为它自己的内部 DOM 样式格式,然后将其写回的结果——这与 HTML 编辑器接收 XHTML 并发出与您想要的不同的东西的方式非常相似 :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2013-06-07
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多