程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2000的視圖中必須小心使用*符號

SQL Server 2000的視圖中必須小心使用*符號

編輯:關於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的資料的時候,錯誤已經悄然來臨,你注意到了嗎?讓我們來看一下這兩個視圖的查詢結果吧,查詢語句如下:

select * from vCustomersA where CustomerID = 'ALFKI'

select * from vCustomersB where CustomerID = 'ALFKI'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved