`
虚弱的java
  • 浏览: 163386 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

Sql2008--7

阅读更多

--数据定义语言DDL
--CREATE DATABASE DATABASE_NAME   创建一个默认数据库的语法
--CREATE DATABASE DATABASE_NAME ON <FILESPEC> FOR{};附加一个数据库
--CREATE DATABASE DATABASE_SNAPSHOT_NAME ON (NAME=,FILENAME) AS SNAPHOT OF SOURCE_DATABASE_NAME;--创建数据库快照
--验证数据库的文件和大小

select name,size as [Size in mbs]
from sys.master_files
where name = N'school';
go
--数据库修改语句
--ALTER DATABASE DATABASE_NAME{
--|MODIFY NAME = NEW_DATABASE_NAME
--|COLLATE COLLATION_NAME
--<FILE_AND_FILEGROUP_OPTIONS>};

USE master
GO
ALTER DATABASE TestWorks
 modify Name = AdventureWorks;
 go
--删除数据库,系统数据库不能删除
--DROP DATABASE {DATABASE_NAME|DATABASE_SNAPSHOT_NAME};

--表
--CREATE TABLE 创建表语句
CREATE TABLE [dbo].[PurchaseOrderDetail]
(
 [PurchaseOrderID] [int] not null
   REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID),
   primary key clustered(PurchaseOrderID)
   with(IGNORE_DUP_KEY = off)
)
on [primary];
--ALTER TABLE 修改表语句
--ALTER TABLE TESTDB ADD COLUMN_B VARHAR(20) NULL 添加一个允许空值的列
--ALTER TABLE TESTDB DROP COLUMN COLUMN_B 删除一列
--DROP TABLE 表删除语句

--索引 CREATE INDEX
USE AdventureWorks
GO --首先判断是否存在该索引,存在,则先删除
IF EXISTS(SELECT NAME FROM sys.indexes WHERE NAME = N'IX_ProductVendor_VendorID')
drop index IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
go--执行创建索引语句
create index IX_ProductVendor_VendorID
 on Purchasing.ProductVendor (VendorID);
 go

--创建非聚集索引
use AdventureWorks
go --首先判断是否存在该索引,存在,则先删除
if EXISTS (SELECT NAME FROM sys.indexes WHERE name = N'IX_SalesPerson_SalesQuota_SalesYTD')
drop index IX_SalesPerson_SalesQuota_SalesYTD on Sales.SalesPerson;
go --执行创建索引语句
CREATE NONCLUSTERED INDEX IX_SalesPerson_SalesQuota_SalesYTD
 ON Sales.SalesPerson (SalesQuota,SalesYTD);
 go
 
--索引修改语句 alter index
--在表中重新生成单个索引
use AdventureWorks
go
alter index PK_Employee_EmployeeID on HumanResources.Employee
REBUILD;  --使用REUBILD选项
go

--禁用对Employee表的非聚集索引
use AdventureWorks
go
alter index IX_Employee_ManagerID
 on HumanResources.Employee DISABLE;
 GO
--索引删除语句
--DROP INDEX 用来删除一个或多个索引,其不适用于通过定义PRIMARY KEY 或 UNIQUE约束创建的索引。
--1、删除ProductVendor表上的索引IX_ProductVendor_VendorID
use AdventureWorks;
go
drop index IX_ProductVendor_VendorID
 on Purchasing.ProductVendor;
go
--2、删除单个事务中的两个索引。
use AdventureWorks;
go
drop index IX_PurchaseOrderHeader_EmployeeID on Purchasing.PurchaseOrderHeader,
     IX_VendorAddress_AddressID on Purchasing.VendorAddress;
go

--视图:就是一个虚拟的表,用CREATE VIEW 语句就可以创建视图
--CREATE VIEW 必须是查询批处理中的第一条语句
use AdventureWorks;
go --首先判断该视图是否已经存在,存在则删除掉。
if OBJECT_ID('hiredate_view','V') is not null
 drop view hiredate_view;
go --开始创建视图语句
create view hiredate_view
as
select c.FirstName,c.LastName,e.EmployeeID,e.HireDate
from HumanResources.Employee e join Person.Contact c
on e.ContactID= c.ContactID; 
go
--视图修改语句   alter view
use AdventureWorks;
go --首先,创建一个视图
CREATE VIEW HumanResources.EmployeeHireDate
 as select c.FirstName,c.LastName,e.HireDate
 from HumanResources.Employee as e join Person.Contact as c
 on e.ContactID = c.ContactID;
go
--如果未使用alter view ,而是删除后再重新创建视图,则必须重新输入用来处理视图权限的GRANT语句和任何其他语句

ALTER VIEW HumanResources.EmployeeHireDate   --重新修改视图
as select C.FirstName,C.LastName,e.HireDate
 from HumanResources.Employee as e join Person.Contact as c
 on e.ContactID = c.ContactID
 where HireDate < CONVERT(DATETIME,'19980101',101);
GO

--视图删除语句   DROP VIEW
use AdventureWorks;
go  --首先判断Reorder视图存在,将其删除
if OBJECT_ID('dbo.Reorder','V') is not null
 drop view dbo.Reorder;
go

--存储过程:可以看做是一个保存在服务器端的文件,其由多条Transact_SQL语句组成,而且允许接收输入和输出参数,并可以运行一个或多个运算
--创建存储过程的语句 CREATE PROCEDURE
use AdventureWorks;
go --开始创建存储过程语句
create procedure uspNResults
   as select COUNT(ContactID) from Person.Contact
   select COUNT(CustomerID) from Sales.Customer;
  go
--存储过程修改语句   ALTER PROCEDURE
--1、创建存储过程
use AdventureWorks;
go --首先判断该存储过程是否已经存在,存在则删除掉
if OBJECT_ID('Purchasing.uspVendor','P') is not null
 drop procedure Purchasing.uspVendor;
go --开始创建存储过程语句

CREATE PROCEDURE Purchasing.uspVendor
 with execute as caller
 as select v.Name as Vendor,p.Name as 'Product Name',v.CreditRating as 'Credit Rating',
 v.ActiveFlag as Availability
 from Purchasing.Vendor v
 inner join Purchasing.ProductVendor pv on v.VendorID = pv.VendorID
 inner join Production.Product p ON pv.ProductID = p.ProductID
 order by v.Name asc;
go
--2、修改存储过程
ALTER PROCEDURE Purchasing.uspVendor
 @Product varchar(25)
 as select LEFT(v.Name,25) as Vendor,LEFT(p.Name,25) as 'Product name',
  'Credit rating'= case v.CreditRating --使用CASE语句
  when 1 then 'Superior'
  when 2 then 'Excellent'
  when 3 then 'Above average'
  when 4 then 'Average'
  when 5 then 'Below average'
  else 'No rating'
     end
     ,Availability = Case v.ActiveFlag   --使用CASE语句
     when 1 then 'Yes'
     else 'No'
     end
     from Purchasing.Vendor as v
     inner join Purchasing.ProductVendor as pv on v.VendorID = pv.VendorID
     inner join Production.Product as p on pv.ProductID = p.ProductID
     where p.Name like @Product
     order by v.Name asc;
go
exec Purchasing.uspVendor N'LL Crankarm';--执行该存储过程
go         

--删除存储过程 drop procedure
drop procedure dbo.uspMyPro;
go
--触发器
--1、创建DML触发器
--2、创建DLL触发器
--3、创建LOGON触发器
--1、创建包含提醒消息的DML触发器
--当视图修改Customer表的数据时,DML触发器会向客户端显示一条消息
use AdventureWorks;
go --首先判断该触发器是否已经存在,存在则删除掉
if OBJECT_ID('Sales.reminder1','R') is not null
 drop trigger Sales.reminder1;
go --开始创建触发器语句
create trigger reminder1
 on Sales.Customer
 AFTER INSERT ,UPDATE
 AS RAISERROR ('注意客户表之间的关系',16,10);
go
--2、创建具有数据库范围的DDL触发器
--创建使用DDL触发器防止从数据库中删除任何同义词
use AdventureWorks;
go --首先判断该触发器是否已经存在,存在则删除掉
if exists (select * from sys.triggers
 where parent_class = 0 and name = 'safetytrig')
drop trigger safetytrig on database;
go --开始创建触发器
create trigger safetytrig
on database
for drop_synonym
as
 raiserror ('You must disable trigger "safetytrig" to drop synonyms!',10,1 )
 rollback;
 go --开始删除触发器语句
 drop trigger safetytrig
 on database;
 go
--3、查看导致触发器触发的事件
--查询sys.triggers 和 sys.trigger_enents 目录视图,以确定是哪个transact_sql语言事件导致触发了触发器
--safetytrig。其中的safeytrig是在上一个示例中创建的。
select TE.*
FROM sys.trigger_events as TE
join sys.trigger_events as T
 on T.object_id = TE.object_id
where T.parent_class = 0
and T.name ='safetytrig'
go
--触发器修改语句 ALTER TRIGGER
USE AdventureWorks;
GO --如果存在该触发器,则将其删除
if OBJECT_ID(N'Sales.bonus_reminder',N'TR') is not null
 drop trigger Sales.bonus_reminder
go --创建触发器
create trigger Sales.bonus_reminder
 ON Sales.SalesPersonQuotaHistory
 with ENCRYPTION
 AFTER INSERT,UPDATE
 AS RAISERROR ('Notify Compensation',16,10) ;
go
--修改触发器
use AdventureWorks;
go
ALTER TRIGGER Sales.bonus_reminder
 ON Sales.SalesPersonQuotaHistory
 AFTER INSERT
 AS RAISERROR ('Notify Compensation',16,10);
go
--删除触发器语句  DROP TRIGGER
--删除DML触发器
drop trigger schema_name.trigger_name[,.....][;]
--删除DDL触发器
DROP TRIGGER TRIGGER_NAME[,.....]
 ON {DATABASE | ALL SERVER}
 [;]
--删除LOGON触发器
drop trigger trigger_name[,....] 
 ON ALL SERVER
--1、删除DML触发器employee_insupd
use AdventureWorks;
go
if OBJECT_ID('employee_insupd','TR') is not null
 drop trigger employee_insupd;
 go
--删除DDL触发器 safeytrig
use AdventureWorks;
go
if exists (select * from sys.triggers where parent_class =0 and name ='safetytrig') 
drop trigger safetytrig
 on database;
go

分享到:
评论

相关推荐

    SQL2008--JDBC--jar

    本资源"SQL2008--JDBC--jar"提供了必要的组件来帮助开发者实现Java与SQL Server 2008之间的通信。下面将详细介绍这个主题中的关键知识点。 1. **SQL Server 2008**: 这是一款由Microsoft公司开发的关系型数据库管理...

    SQL-Server-2008-数据库还原到SQL-Server-2012.doc

    SQL-Server-2008-数据库还原到SQL-Server-2012.doc

    SQL 2005-2008查询分析器

    SQL 2005-2008查询分析器是微软公司推出的用于管理和处理SQL Server数据库引擎的强大工具,主要用于编写、执行SQL语句并进行性能分析。在这个版本的跨度中,SQL Server经历了从2005到2008的重要升级,引入了许多新...

    SQL2008-1.8X_x32_x64.zip

    其次,这个压缩包包含了32位(SQL2008-1.8X-32.zip)和64位(SQL2008-1.8X-64.zip)两个版本,以满足不同硬件平台的需求。64位版本可以更好地利用现代多核处理器的性能,处理大数据量时更为高效;而32位版本则对老旧...

    SQL2008-R2-x64-精简免安装版

    SQL2008_R2_x64_精简免安装版

    Inside Microsoft SQL Server 2008 - T-SQL Querying

    ### 关于《Inside Microsoft SQL Server 2008 - T-SQL Querying》的知识点解析 #### 一、概述 《Inside Microsoft SQL Server 2008 - T-SQL Querying》是一本深入探讨Microsoft SQL Server 2008中T-SQL查询技术的...

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    ### 关于《Inside Microsoft SQL Server 2008 T-SQL Programming》的知识点解析 #### 一、SQL Server 2008概述 《Inside Microsoft SQL Server 2008 T-SQL Programming》这本书深入地介绍了SQL Server 2008的各项...

    SQL-Server-2008-数据库还原到SQL-Server-2012.docx

    "数据库迁移:从 SQL Server 2008 到 SQL Server 2012" 作为一名专业的 IT 行业大师,我将详细地解释 SQL Server 2008 数据库迁移到 SQL Server 2012 的过程。 数据库迁移的必要性 随着技术的发展和业务的增长,...

    wjz-sqlFormat-1.4

    DBeaver工具很强大,但在sql格式化方面不尽人意,所以利用它的扩展功能开发出来的一个功能。说明文档: https://blog.csdn.net/wangjz2008/article/details/114082969 1、首选项中找到:sql编辑器-&gt;sql格式化 ,【格式...

    Inside Microsoft SQL Server 2008 T-SQL Programming

    《Inside Microsoft SQL Server 2008 T-SQL Programming》这本书深入探讨了SQL Server 2008中的T-SQL编程技术,这是SQL Server数据库管理与开发的核心语言。T-SQL,即Transact-SQL,是SQL的一个扩展,主要用于微软的...

    SQL2008 T-SQL 参考A

    整合MSDN上边关于 SQL2008的T-SQL 参考方面的信息。对于想了解SQL2008方面的朋友是一个好事。

    SQL SERVER-2008从入门到精通.pdf

    《SQL SERVER 2008从入门到精通》是一本专为初学者和进阶者设计的教程,全面覆盖了SQL Server 2008的各项核心功能和实用技术。SQL Server是微软公司推出的一种关系型数据库管理系统,广泛应用于数据存储、分析和报表...

    SQL2008-R2-双实例群集模式安装详解

    SQL Server 2008 R2 双实例群集模式是一种高可用性和容错解决方案,它允许在同一物理或虚拟服务器上运行多个独立的SQL Server实例,每个实例都可以配置为在一个故障转移群集中运行,以确保在主服务器出现故障时能够...

    SQL SERVER 2008 T-SQL 基础

    《SQL SERVER 2008 T-SQL基础》是一本由微软出版社出版的书籍,主要针对SQL Server 2008中的Transact-SQL(T-SQL)语言进行深入浅出的讲解。T-SQL是SQL Server的核心组件,用于数据查询、数据操纵、存储过程编写以及...

    Microsoft SQL Server 2008 T-SQL Fundamentals

    《Microsoft SQL Server 2008 T-SQL Fundamentals》是一本专为SQL Server初学者设计的教程,它深入浅出地介绍了Transact-SQL(T-SQL)的基础知识。T-SQL是SQL Server中用于数据查询、更新、操作和编程的主要语言。...

    sql2008-2005.rar

    本资源“sql2008-2005.rar”聚焦于从SQL Server 2008向SQL Server 2005的数据迁移过程,这对于那些需要在不同版本之间进行数据迁移的企业或个人来说,具有重要的实践价值。下面,我们将详细探讨这个过程中的关键知识...

    SQL SERVER-2008从入门到精通

    《SQL SERVER-2008从入门到精通》是一本由Mike Hotek编著的电子书,主要针对SQL Server 2008这一数据库管理系统,旨在帮助初学者快速掌握SQL Server的基本操作和高级技巧,逐步成长为数据库管理的专业人士。SQL ...

    CDC操作Sqlserver2008

    ### CDC操作Sqlserver2008 #### 概述 变更数据捕获(Change Data Capture,简称CDC)是SQL Server的一项重要功能,主要用于记录数据库表中的数据更改历史。这一功能在进行数据分析、日志记录、数据复制等场景下...

    SQL-Server-2008-Database-Administra

    ### SQL Server 2008 数据库管理:发展历程与关键特性 #### 背景介绍 SQL Server 是由微软公司开发的一款关系型数据库管理系统,在过去几十年间经历了多次迭代升级,逐渐成为了市场上主流的企业级数据库解决方案之...

Global site tag (gtag.js) - Google Analytics