WEB开发网
开发学院数据库MSSQL Server 细说Sql Server中的视图(下) 阅读

细说Sql Server中的视图(下)

 2009-06-19 10:29:26 来源:WEB开发网   
核心提示: 我们在Northwind数据库中创建一个CustomWithOrder的视图,现在还没有添加WITH CHECK OPTION选项 1:CREATEVIEWCustomerWithOrder2:WITHVIEW_METADATA3:AS4:5:SELECTCustomers.Custome

我们在Northwind数据库中创建一个CustomWithOrder的视图,现在还没有添加WITH CHECK OPTION选项

  1: CREATE VIEW CustomerWithOrder
  2: WITH VIEW_METADATA
  3: AS
  4:  
  5: SELECT Customers.CustomerID,Customers.CompanyName FROM Customers 
  6: WHERE EXISTS(SELECT 1 FROM Orders WHERE Orders.CustomerID = Customers.CustomerID)
  7: 

该视图的作用是查询所有有订单的客户的id和公司名,接下来我们向视图中插入一条不存在的用户id,和公司名:

  1: INSERT INTO CustomerWithOrder(CustomerID,CompanyName) VALUES('MYSQL','MyReed')

执行成功,然后在查询这个CustomerWithOrder视图,很明显,查询不到CustomerID为’MySQL’的用户,因为视图只包含发生过订单的用户;如果你直接查询Customers表,就会发现这个新增的用户信息了。

接下来对CustomerWithOrder视图添加WITH CHECK OPTION 选项

  1: ALTER VIEW CustomerWithOrder
  2: WITH VIEW_METADATA
  3: AS
  4:  
  5: SELECT Customers.CustomerID,Customers.CompanyName FROM Customers 
  6: WHERE EXISTS(SELECT 1 FROM Orders WHERE Orders.CustomerID = Customers.CustomerID)
  7:  
  8: WITH CHECK OPTION

然后再执行下面的语句:

  1: INSERT INTO CustomerWithOrder(CustomerID,CompanyName) VALUES('ILSQL','MyReed')

上一页  1 2 3 4 5  下一页

Tags:细说 Sql Server

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