索引视图:

创新互联公司主要从事成都做网站、成都网站制作、成都外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务孝昌,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
一般视图都虚表,即视图本身不存储数据,而且是一个查询,当访问视图时,SQL SERVER会自动根据视图的定义来访问基表数据。具有***的聚集索引的视图,
索引视图本身会存储数据,可以加快查询速度,但会增加数据修改的开销。所以索引视图适用的修改少而查询多的表。创建索引视图时,索引视图的***个索引
必须是CLUSTERED和UNIQUE。
索引视图的创建:
- CREATE TABLE dbo.t1
 - (
 - USERID VARCHAR(50),
 - USERNAME VARCHAR(256)
 - );
 - go
 - CREATE TABLE dbo.t2
 - (
 - USERID VARCHAR(50),
 - DepartID VARCHAR(50)
 - );
 - GO
 - CREATE TABLE dbo.t3
 - (
 - DepartID VARCHAR(50),
 - DepartName VARCHAR(256)
 - );
 - GO
 - CREATE VIEW dbo.USERINFO
 - WITH SCHEMABINDING
 - AS
 - SELECT a.USERID, a.USERNAME, c.DEPARTID, c.DEPARTNAME
 - FROM dbo.t1 a, dbo.t2 b, dbo.t3 c
 - WHERE a.USERID = b.USERID
 - AND b.DEPARTID = C.DEPARTID
 - GO
 - CREATE UNIQUE CLUSTERED INDEX IX_USERINFO_USERIDDEPARTID ON dbo.USERINFO(USERID, DEPARTID)
 
SQL Server 中的DDL触发器
DDL触发器可以在整数据库范围内对对象的定义、修改、删除而触发执行的触发器。可以数据库级别对数据库对象进行控制和审记。或者服务器级别的触发器,如用户登录的审记。
DDL触发器事件定义:
type date-time spid name name name name name name type command 
DDL触发器的创建:
- CREATE TABLE dbo.t4
 - (
 - USERNAME VARCHAR(256),
 - TSQL VARCHAR(MAX),
 - CDATE DATETIME
 - );
 - GO
 - CREATE TRIGGER tr_dbDDL
 - ON DATABASE
 - FOR
 - DROP_TABLE, ALTER_TABLE, CREATE_TABLE,
 - CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE
 - AS
 - DECLARE @xdata XML;
 - SELECT @xdata = EVENTDATA();
 - ROLLBACK;
 - INSERT INTO dbo.t4(USERNAME, TSQL, CDATE)
 - SELECT @xdata.value('(/EVENT_INSTANCE/UserName)[1]', 'nvarchar(max)') AS dbUserName,
 - @xdata.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)') AS T_SQL,
 - GETDATE() AS CDATE;
 - GO
 - use master
 - go
 - CREATE TABLE dbo.t5
 - (
 - USERNAME VARCHAR(256),
 - TSQL VARCHAR(MAX),
 - CDATE DATETIME
 - );
 - GO
 - ALTER TRIGGER tr_svrddl
 - ON ALL SERVER
 - FOR
 - CREATE_DATABASE, ALTER_DATABASE, DROP_DATABASE,
 - DDL_LOGIN_EVENTS
 - AS
 - DECLARE @xdata XML;
 - SELECT @xdata = EVENTDATA();
 - INSERT INTO dbo.t4(USERNAME, TSQL, CDATE)
 - SELECT @xdata.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(max)') AS dbUserName,
 - @xdata.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)') AS T_SQL,
 - GETDATE() AS CDATE;
 - GO
 
                本文名称:详解SQLServer中DDL触发器和索引视图
                
                链接URL:http://www.csdahua.cn/qtweb/news24/133974.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网