相关疑难解决方法(0)

视图设计器奇怪的连接语法

我有一个数据仓库,里面有很多用 SSMS 视图设计器内置的视图。查看语法,FROM我无法理解这些子句,因为ON语句没有紧跟在相关的JOIN <table>. 通常RIGHT连接查询的主表并在FROM. 所以我有这样的情况:

SELECT *
FROM tableC
LEFT JOIN TableB
RIGHT JOIN TableA
ON TableA.ID = TableB.ID
ON TableB.TypeID = TableC.TypeID 
WHERE ....
Run Code Online (Sandbox Code Playgroud)

将各种JOINandON子句的顺序更改为我手写的内容会以意想不到的方式改变结果。似乎大多数 SQL 美化者都对这种丑陋的语法感到窒息,而 SSMS 则不然。我一直无法找到押韵、原因或文档来帮助解开正在发生的事情。

请提供任何建议或链接以找出和修复视图设计器查询?

sql-server syntax ssms t-sql view

7
推荐指数
1
解决办法
377
查看次数

使用设计功能查看时查看已损坏

总而言之,我上周五发生了一件非常奇怪的事情。我们有一个每天更新的表,它使用一个作业来触发一个利用视图的过程。列正在从视图转换到正在更新的表,即视图中的列 A 正在更新表中的列 D,而不是它应该具有的列 A。

当我右键单击视图并从菜单中选择“设计”时,我可以看到问题确实是生成的 sql 语句正在写入以使用视图中 A 列的信息更新表中的 D 列。

我怀疑视图定义发生了变化,所以我右键单击视图并编写脚本以查看它上次更新的时间,当我这样做时,生成的脚本是正确的,并且与我选择“设计”选项时生成的 sql 完全不同. 在这一点上,我删除了视图并从脚本中重新创建了它。现在一切都很好。

有没有人见过这个?自 2000 年以来,我一直在使用 SQL 服务器,但从未遇到过这种情况。我们在 Win2K3 上使用 SQL2005 SP4(即将升级到 12)。任何见解将不胜感激。-保罗

sql-server ssms view

6
推荐指数
1
解决办法
556
查看次数

将 SQL Server 2000 数据库升级到 SQL Server 2008 后,视图未按列分组排序

我有两张桌子

  • 位置大师( [LocatioNo],[LocationName],[Description])
  • 位置数据( [LocationNo],[LocationCode],[DDate],[BillNo],[Model],[Quantity],[SNo])

表格内容
(来源:staticflickr.com
](http://www.flickr.com/photos/77377790@N08/6782618850 “点击查看Flickr”)

以及涉及在 SQL Server 2000 中创建的 2 个表的视图

CREATE VIEW [dbo].[QueryLocation]
AS
  SELECT TOP (100) PERCENT 
       dbo.LocationData.LocationNo, dbo.LocationData.LocationCode, 
       dbo.LocationData.DDate, dbo.LocationData.BillNo, 
       dbo.LocationData.Model,              
       SUM(dbo.LocationData.Quantity) AS Quantity, 
       dbo.LocationMaster.LocationName
  FROM 
       dbo.LocationData 
  INNER JOIN 
       dbo.LocationMaster ON dbo.LocationData.LocationNo = dbo.LocationMaster.LocatioNo 
  GROUP BY 
       dbo.LocationMaster.LocationName, dbo.LocationData.LocationNo, 
       dbo.LocationData.LocationCode, dbo.LocationData.DDate, dbo.LocationData.BillNo, 
       dbo.LocationData.Model ORDER BY dbo.LocationData.BillNo
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2000 中执行以下查询时,网格中的结果按billno列排序。

SELECT *  FROM QueryLocation
Run Code Online (Sandbox Code Playgroud)

查询结果
(来源:staticflickr.com
](http://www.flickr.com/photos/77377790@N08/6782618858 “点击查看 Flickr”)

升级到 SQL Server …

sql-server-2008 sql-server

5
推荐指数
3
解决办法
2015
查看次数

标签 统计

sql-server ×3

ssms ×2

view ×2

sql-server-2008 ×1

syntax ×1

t-sql ×1