WEB开发网
开发学院数据库MSSQL Server SQL Server 2000的视图中必须小心使用*符号 阅读

SQL Server 2000的视图中必须小心使用*符号

 2008-11-10 10:08:39 来源:WEB开发网   
核心提示:有些朋友看到这个标题可能会有疑问,难道在视图中使用*符号还有何要注意的地方吗?对于这个问题,SQL Server 2000的视图中必须小心使用*符号,我们先不必回答,先看一下例子吧,当我们再次使用视图vCustomersB查询客户ID为ALFKI的资料的时候,错误已经悄然来临, 我这里,使用的数据库是SqlServer

有些朋友看到这个标题可能会有疑问,难道在视图中使用*符号还有何要注意的地方吗?对于这个问题,我们先不必回答,先看一下例子吧。

我这里,使用的数据库是SqlServer2000自带的Northwind,这样方便大家自己私下里测试。首先,创建两个视图,视图的脚本如下:

--视图 vCustomersA

  create view vCustomersA
  as
  select CustomerID ,CompanyName,ContactName,ContactTitle,
  Address,City,Region,PostalCode,Country,Phone,Fax
  from dbo.Customers
  go

--视图 vCustomersB

  create view vCustomersB
  as
  select * from vCustomersA
  go

然后,使用这两个视图查询客户ID为ALFKI的资料,查询语句如下:

select * from vCustomersA where CustomerID = 'ALFKI'

select * from vCustomersB where CustomerID = 'ALFKI'

查询的结果如下:

一切正常,这个时候,需求发生了变化,我们需要改动vCustomersA,改动后的脚本如下:(为了说明问题,我们只是把CompanyName和ContactName互换一下位置)

--改动后的视图vCustomersA

  alter view vCustomersA
  as
  select CustomerID ,ContactName,CompanyName,ContactTitle,
  Address,City,Region,PostalCode,Country,Phone,Fax
  from dbo.Customers
  go

这个时候,当我们再次使用视图vCustomersB查询客户ID为ALFKI的资料的时候,错误已经悄然来临,你注意到了吗?让我们来看一下这两个视图的查询结果吧,查询语句如下:

1 2  下一页

Tags:SQL Server 视图

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接