20190422 SQL SERVER 服务
-- 数据库服务
-- SQL Server(MSSQLSERVER)是必须要开启的,这个是数据库引擎服务,就像汽车的发动机一样
-- SQL Server代理(MSSQLSERVER)是代理服务,比如你有一些自动运行的,定时作业,或者是一些维护计划,比如定时备份数据库等操作,那么就要打开,否则,就不会备份数据库了
-- SQL Server Reporting Services (MSSQLSERVER)是报表服务,一般不用开启,除非你做了报表,通过这个组件来提供报表服务,才需要开启。
-- SQL Server Analysis Services (MSSQLSERVER)是分析服务,一般不用开启,除非你做多位分析,和数据挖掘,才需要开启
-- SQL Full-text Filter Daemon Launcher (MSSQLSERVER)是全文检索服务,如果你没有使用全文检索技术,那么也不需要开启。
-- SSIS 用于商业智能
-- SQL Server Browser Service 以 Windows 服务的形式运行,侦听对 Microsoft SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息
-- 主要考虑的是一台服务器上面,多个实例的情况,一般一台服务器上面只有一个实力就不需要启动这个服务
-- 触发E器
-- 案例1 禁止用户插入新的记录
CREATE TRIGGER no_insert
ON xs
AFTER INSERT -- 在Insert只有才发生吗? 那么
AS
BEGIN
RAISERROR('XS表不允许插入新的记录',1,1); --返回信息,这是个INSERT 后放弃的过程
ROLLBACK TRANSACTION
END
SELECT * FROM inserted
SELECT *
FROM XS
INSERT INTO XS
VALUES('14311101','SOAR','女','1977-10-11','14信管','江西萍乡','18','');
DELETE XS
WHERE 姓名='SOAR';
DROP TRIGGER no_insert;
-- 案例2 DELETE 的触发器,作用是删除数据后给出提示
CREATE TRIGGER xs_del
ON XS
AFTER DELETE
AS
BEGIN
SELECT 学号 as '被删除的学生',姓名 FROM deleted
END
DELETE FROM XS WHERE 学号='14311101';
DROP TRIGGER xs_del;
-- UPDATE 触发器
CREATE TRIGGER xs_update
ON XS
AFTER UPDATE
AS
BEGIN
SELECT 姓名 AS '更改后',学号 FROM inserted; -- 这里可以看出更新的系统逻辑
SELECT 姓名 AS '更改前',学号 FROM deleted
END
UPDATE XS SET 姓名='SOAR'
WHERE 学号='14311002'
UPDATE XS SET 姓名='贺梅'
WHERE 学号='14311002'
DROP TRIGGER xs_update
-- INSEAD OF 触发器
-- 对比一下不让INSERT的过程
CREATE TRIGGER xs_instead
ON xs
INSTEAD OF INSERT
AS
BEGIN
DECLARE @st INT;
SELECT @st = (SELECT 总学分 FROM inserted)
IF @st >30
SELECT '总学分不符合要求' AS 失败原因
END
INSERT INTO XS(学号,姓名,总学分) VALUES('15001','张三','35');
SELECT * FROM XS WHERE 学号='15001';
-- 针对整个数据库的触发器
CREATE TRIGGER safty
ON DATABASE -- ALL SERVER 这个是要求对所有数据库生效的,我认为没事的话,不会有人去写这个的
FOR DROP_TABLE,ALTER_TABLE
AS
BEGIN
PRINT '当前数据库禁止更新删除操作'
ROLLBACK TRANSACTION
END
DROP TRIGGER safty;
DROP TABLE XS;
-- 创建一个登陆触发器 这个不好测试,因为是针对IP地址的验证
-- 创建一个触发器当登陆名为test 的时候,只允许在8:00 - 17:30 的时间登陆
CREATE TRIGGER time_limit
ON ALL SERVER WITH EXECUTE AS 'log_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()='log_test' AND CONVERT(CHAR(10),GETDATE(),108) BETWEEN '08:00:00' AND '10:30:00'
ROLLBACK;
END
SELECT CONVERT(CHAR(10),GETDATE(),108)
DROP TRIGGER time_limit;
-- 首先创建一个用户,命名为test
-- 针对不同级别的触发器,查看的地方不同,表级别、数据库级别、服务器级别
-- 注意一下权限的部分
-- 限制对保护数据的操作
CREATE TRIGGER update_limit ON XS
FOR update
AS
BEGIN
IF update(班级) and Exists(SELECT * FROM inserted WHERE 学号='14311002')
RAISERROR('学号为1431102学生的班级不能修改',16,1)
ROLLBACK TRANSACTION
END;
SELECT * FROM XS WHERE 学号='14311002'
update xs set 班级='19计科' WHERE 学号='14311002' ;
-- 触发器实现级联操作
-- 使用触发器对有关系的表进行级联操作,比如级联更新\级联删除
CREATE TRIGGER trigdelete
ON xs
AFTER DELETE
AS
BEGIN
DELETE XK WHERE 学号=(SELECT 学号 FROM deleted)
END
-- 所谓的更新就是插入和删除的概念
SELECT * FROM XS
INNER JOIN XK
ON XS.学号=XK.学号
SELECT * FROM XK
DELETE FROM XS WHERE 学号='14311001' ; -- 这里可以实践一下DELETE的动作
-- 修改触发器
-- 使用系统存储过程查看触发器
SP_HELPTEXT UPDATE_LIMIT;
EXEC sp_rename update_limit,update_test; -- OK
-- 禁止触发器的两种写法
ALTER TABLE XS
DISABLE TRIGGER update_test; --会有一个打叉的情况
DISABLE TRIGGER update_test ON xs;
-- 启用触发器
ALTER TABLE xs
ENABLE TRIGGER no_insert;
-- 这种触发器常用于记录删除数据,但是呢,要针对指定的列进行删除,否则不能记录
-- 索引
-- 索引会占据空间, 对数据的增删和修改,都会影响到索引的空间
-- 如何查看索引的空间情况
-- 索引包括聚集索引,非聚集索引,全文索引,XML索引和空间索引5种主要类型
-- 聚集索引,非聚集索引 ,
-- 聚集索引,每张表只能有一个,而非聚集索引可以有多个
-- 创建索引的几种方式
CREATE Clustered Index IX_XS_name
ON XS(姓名) -- 会报错
CREATE Unique nonClustered Index IX_XS_number
ON XS(学号)
With IGNORE_DUP_KEY
-- 查看索引
EXEC sp_helpindex XS
-- 重建索引 ALL 表示所有索引重建
Alter Index ALL ON XS Rebuild
--
Alter Index IX_XS_number ON XS Rebuild
Drop Index XS.IX_XS_number
-- 索引预留空间
CREATE UNIQUE NONCLUSTERED INDEX IX_XS_number
ON XS(学号)
WITH (PAD_INDEX=ON,FILLFACTOR=10)
-- 索引的分析
-- SHOWPLAN_ALL 语句
USE xsxk
GO
SET SHOWPLAN_ALL ON
GO
SELECT 学号,姓名,性别,出生日期
FROM XS WHERE 出生日期>='1995-10-1'
AND 出生日期 <='1995-10-30'
GO
SET SHOWPLAN_ALL OFF
USE xsxk
GO
SET STATISTICS IO ON
GO
SELECT 学号,姓名,性别,出生日期
FROM XS WHERE 出生日期>='1995-10-1'
AND 出生日期 <='1995-10-30'
GO
SET STATISTICS IO OFF
-- 获取索引中的平均碎片
USE xsxk
GO
SELECT avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(),OBJECT_ID('XS'),NULL,NULL,NULL)
-- 全文索引
-- 全文索引的意义在哪里?
20190422 SQL SERVER 服务的更多相关文章
- windows10下sql server 2005 无法运行或sql server服务无法启动的完美解决方案
问题:升级windows10后,sql server 2005 无法运行或sql server服务&sql server agent无法启动,如下图,怎么办? 一般情况下,我们第一反应就是sq ...
- 慎重管理SQL Server服务的登录(启动)账户和密码
今天是大年初三,先跟大家拜个年,祝大家新年快乐.今天处理了一个alwaysOn问题——辅助副本因为磁盘空间不足一直显示[未同步——可疑],在日志中可以看到数据库处于挂起状态,与主副本失去同步.原以为只 ...
- SQL Server 2012实施与管理实战指南(笔记)——Ch5启动SQL Server服务和数据库
5.启动SQL Server服务和数据库 在数据库和服务启动过程中,经常会出现的问题: 1.SQL Server实例无法正常启动 2.系统数据库无法正常启动 3.网络配置失败 4.用户数据库无法启动 ...
- Sql Server服务远程过程调用失败解决
Sql Server服务远程过程调用失败解决 问题: 今天SQL数据库登录不上了,然后想启动Sql实例,却发现如下问题(配置环境:win7旗舰版x64,SqlServer2008R2, ...
- 关于Windows8.1更新后Sql Server服务消失的处理办法
前言 微软在17日发布了windows8.1,兴致勃勃地花了半天的时间更新了,不过不知所云的是,在20日又被卸下Windows Store.此为背景. 影响 更新完毕做开发的时候,发现SqlServe ...
- SQL Server服务启动失败,错误代码:10048
今天打开电脑后遇到了一个奇葩的问题,启动Sql Server服务时,出现如下图所示错误:
- Sql Server服务远程过程调用失败
由于开发系统,需要vs版本统一,于是经过了昨天一整天艰苦卓绝的斗争,小编终于成功的写在了13版本的vs,重新装上了12版本的vs,本来想着,12版本的vs搭建成功了,就赶快搭建框架,然后敲例子,可是天 ...
- 查看SQL Server服务运行帐户和SQL Server的所有注册表项
查看SQL Server服务运行帐户和SQL Server的所有注册表项 SELECT * FROM sys.dm_server_registry SELECT * FROM sys.dm_serve ...
- SQL Server服务没有自动启动原因案例分析
这个案例是前两天出现的,一直没有时间总结,25号凌晨4点去处理数据库的故障问题.远程连上公司的局域网,psping检查发现服务器的1433端口不通,数据库连接不上,但是主机又能ping通,登录服务器检 ...
随机推荐
- ftp软件中保持连接命令CWD、PWD、LIST、NOOP四个操作命令解析
转自:http://www.aspjzy.com/A/148.html 各位站长都知道,我们在维护网站的时候,经常需要一直保持ftp连接状态,这个时候在很多ftp客户端软件中都有一个保持全局连接的选项 ...
- 安装sqlserver后 服务启动过几秒就自动停止
今天安装sqlserver2014后 发现启动2014的服务,过几秒就会自动停止 通过查看windows日志发现是系统库路径报错~ google了下 发现 "重新生成系统库"就能解 ...
- make -j8以及linux下查看cpu的核数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- 使用ffmpeg搭建HLS直播系统
[时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg,live,直播,点播, nginx, ssegment] 0 引言 本文作为HLS综述的后续文章. ...
- nginx转发成功报400 bad request,服务端未收到请求
nginx转发成功报400 bad request,服务端未收到请求 解决办法: upstream后面不要跟下划线 例如: upstream auth_service{ server 30.4.164 ...
- 【转】C# 高性能 TCP 服务的多种实现方式
原文链接: http://www.cnblogs.com/gaochundong/p/csharp_tcp_service_models.html 开源库: https://github.com/ga ...
- [tomcat启动报错]registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped
环境:一个tomcat ,一个工程配置了多数据源,在启动的时候报如下错误: SEVERE: The web application [/qdp-resource-job] registered the ...
- 在windows上搭建SSH服务踩过的坑
前两天安装了windows操作系统,想在windows上做内网穿透,所以就想在windows下启用ssh服务,今天就来讲一下我在搭建ssh服务中遇到的坑. 我显示在Mac下搭建了ssh服务,并且测试通 ...
- JavaCC从入门到出门
一.JavaCC JavaCC是java的compiler compiler.JavaCC是LL解析器生成器,可处理的语法范围比较狭窄,但支持无限长的token超前扫描. 安装过程: 我是从githu ...
- 转载:数据挖掘模型中的IV和WOE详解
1.IV的用途 IV的全称是Information Value,中文意思是信息价值,或者信息量. 我们在用逻辑回归.决策树等模型方法构建分类模型时,经常需要对自变量进行筛选.比如我们有200个候选自变 ...