题如下:
你正在使用一个SQL Server 2005数据库,它包含一个名为Customers的表。其中Customers
表包含如下的列定义:
列名 类型
CustomerID Int
CompanyName Varchar(50)
FirstName Varchar(20)
LastName Varchar_(20)
Picture Varbinary(max)
Address1 Varchar(30)
Address2 Varchar(30)
City Varchar(30)
StateProvince Char(2)
PostalCode Varchar(10)
CountryCode Char(2)
你使用以下Transact-SQL语句创建一个名为v_Customer的视图。
CREATE VIEW v_Customer AS
SELECT CustomerID, CompanyName, FirstName, LastName, Picture
FROM Customers。
你想要在v_ Customer视图中创建一索引。在创建索引前,还需要修改此Transact-SQL语句。
应采取哪两项举措?
答案:
1.表名包含模式名
2.包含WITH SCHEMABINDING 语句
就是这个题。请问那个什么是模式名啊。。。。初学。。不太懂
------解决方案--------------------
- SQL code
---索引视图索引视图是具体化的视图--创建索引视图create view 视图名 with schemabinding asselect 语句go---创建索引视图需要注意的几点1. 创建索引视图的时候需要指定表所属的架构--错误写法create view v_f with schemabinding asselect a.a,a.b,b.a,b.bfrom a join b on a.id=b.idgo---正确写法:create view v_f with schemabinding asselect a.a,a.b,b.a,b.bfrom dbo.a join dbo.b on a.id=b.idgo2.在创建索引视图的select语句时,不使用*,必须指定具体的列名--错误写法create view v_f with schemabinding asselect *from dbo.a join dbo.b on a.id=b.idgo---正确写法create view v_f with schemabinding asselect a.a,a.b,b.a,b.bfrom dbo.a join dbo.b on a.id=b.idgo3.在创建索引视图的select 语句中,不能存在重复的列名,这个不举例了4. 只能为索引视图创建唯一聚集索引--正确的写法create unique clustered index ix_uniquetb on v_tbgo--错误的写法 create clustered index ix_uniquetb on v_tbgo
------解决方案--------------------
1.表名包含模式名
应该是DBO吧。那是架构名