2008-11-04 55 views
2

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

原来是这样的:

FROM dbo.Stop LEFT OUTER JOIN dbo.StopType ON dbo.Stop.StopTypeID = dbo.StopType.StopTypeID LEFT OUTER JOIN dbo.CityState ON dbo.Stop。 City = dbo.CityState.City AND dbo.Stop.State = dbo.CityState.State LEFT OUTER JOIN dbo.vwDrivers ON dbo.Stop.DriverID = dbo.vwDrivers.DriverID LEFT OUTER JOIN dbo.truck ON dbo.Truck。 TruckID = dbo.Stop.TruckID INNER JOIN dbo.vwTicketIDFirstStopLastStop ON dbo.vwTicketIDFirstStopLastStop.TicketID = dbo.stop.ticketid LEFT OUTER JOIN dbo.Company ON dbo.Company.C ompanyID = dbo.vwTicketIDFirstStopLastStop.BillToCompanyID

现在就是这样。

FROM dbo.Truck RIGHT OUTER JOIN dbo.Stop INNER JOIN dbo.StopType ON dbo.Stop.StopTypeID = dbo.StopType.StopTypeID LEFT OUTER JOIN dbo.CityState ON dbo.Stop.City = dbo.CityState .City AND dbo.Stop.State = dbo.CityState.State LEFT OUTER JOIN dbo.vwDrivers ON dbo.Stop.DriverID = dbo.vwDrivers.DriverID ON dbo.Truck.TruckID = dbo.Stop.TruckID LEFT OUTER JOIN dbo .vwTicketIDFirstStopLastStop LEFT OUTER JOIN dbo.Company ON dbo.Company.CompanyID = dbo.vwTicketIDFirstStopLastStop.BillToCompanyID ON dbo.vwTicketIDFirstStopLastStop.TicketID = dbostop.ticketid

+0

你能给我们一个初始和重新排列视图的例子S' – 2008-11-04 20:57:43

+0

我在原始问题中添加了一个示例,谢谢。 – dwidel 2008-11-04 21:59:58

回答

3

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

“Fx”意味着连接不是一个简单的列到列链接,但涉及一个函数(这也是为什么它不能指向一个字段,当然)。但它本身不应该这样做,

0

这是视图GUI将SQL解析为它自己的内部DOM样式格式然后将其写回的结果 - 这与HTML编辑器在XHTML中采用的方式很相似发出不同的东西你怎么想它:(

1

我最讨厌的视图界面

我用RightClick-> ScriptViewAs->阿尔特到 - >新建查询编辑器窗口

所以好得多:)

相关问题