SQL Server -- 回忆笔记(一):初见数据库
SQL Server知识点回忆篇(一):初见数据库
1. 主键
primary key 唯一标识, 不会重复的值才会用来当做主键使用。
表可以没有主键,但建议每张表都有主键。
2. 数据冗余
一般情况下,尽量避免表中数据冗余的...[2018/10/24]
SQLServer之视图简介
视图定义
视图是一个虚拟表,其内容由查询定义。 同表一样,视图包含一系列带有名称的列和行数据。 视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。 行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类...[2018/10/24]
SQLServer之删除触发器
删除触发器
注意事项
可以通过删除DML触发器或删除触发器表来删除DML触发器。 删除表时,将同时删除与表关联的所有触发器。
删除触发器时,会从 sys.objects、sys.triggers 和 sys.sql_modules 目录视图中删除有关该触发器的信息。
仅当所有触发器均...[2018/10/23]
查询表数据通用存储过程
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[SearchTableData]
@TableName VARCHAR(255),
@Fields VARCHAR(255),
@WhereField VARC...[2018/10/23]
sql server 计算两个时间 相差的 几天几时几分几秒
CAST ( CAST ( DATEDIFF ( , StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + ''天'' + CAST ( CAST ( DATEDIFF ( , StartTime, Con...[2018/10/23]
sql server 通用修改表数据存储过程
ALTER PROC [dbo].[UpdateTableData]@TableName VARCHAR(255),@SearchField VARCHAR(255),@SearchValue VARCHAR(255),@WhereField&nb...[2018/10/23]
c#数据批量插入
由于之前面试中经常被问到有关EF的数据批量插入问题,今天以Sqlserver数据库为例,对.net中处理数据批量处理的方案进行了测试对比。
1.四种测试方案
(1)普通的EF数据批量插入:即调用DbSet中的Addrange方法
(2)不进行上下文跟踪的EF数据批量插入:即关闭自调用的Det...[2018/10/22]
SQLServer之修改触发器
修改触发器规则
修改CREATE TRIGGER语句以前创建的 DML、DDL 或登录触发器的定义。触发器是通过使用CREATE TRIGGER创建的。这些触发器可以由Transact-SQL语句直接创建,也可以由程序集方法创建,这些方法在Microsoft .NET Framework...[2018/10/22]
附加数据库时出错问题处理
打开数据库配置管理器,
找到SQL Server服务,右键,属性
将登录设置 内置账户,Local System
[2018/10/20]
SQLServer之创建嵌套触发器
嵌套触发器创建规则
当触发器执行启动其他触发器的操作时,DML 和 DDL 触发器都是嵌套触发器。 这些操作都可以启动其他触发器等。 DML 触发器和 DDL 触发器最多可以嵌套 32 层。 可以通过 nested triggers 服务器配置选项...[2018/10/20]
关于getdate()的不同的日期格式
在使用Sql Server查询数据库时,我们经常会需要查询日期格式的数据,对于日期在sql语言中的格式有一定的要求,通过修改convert中的最后一位参数,可以返回不通格式的时间,具体实现如下:
1 Select CONVERT(varchar(45), GETDATE(), 0): 08...[2018/10/20]
SQLServer之创建LOGON触发器
LOGON触发器工作原理
登录触发器将为响应 LOGON 事件而激发存储过程。 与 SQL Server实例建立用户会话时将引发此事件。 登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。 因此,来自触发器内部且通常将到达用户的所有消息(例...[2018/10/19]
数据库别来无恙-数据库别来无恙-
数据库
1、MySQL
mysql学习【第一篇】:初始MySQL
mysql学习【第二篇】:安装MySQL
mysql学习【第三篇】:MySQL体系结构
mysql学习【第四篇】:MySQL数据类型
mysql学习【第五篇】:MySQL字符集
mysql学习【第六篇】:MySQL用...[2018/10/19]
experience-of-optimizing-spark-sexperience-of-optimizing-spark-s
从17年开始,eBay将它的数据仓库系统向Spark做迁移,我们分享了迁移过程中为Spark做的两个主要优化:Adaptive Execution和Indexed Bucket。
篇幅过长,精力有限,原文浏览地址https: www.sli...[2018/10/18]
How to monitor tempdb in MS SQL
Error: tempdb is full due to active_transaction.
1 select
2 .[host_name],
3 .login_name,
4 .original_login_name,
5 .[status],
6 ...[2018/10/18]
SQLServer之创建Transact-SQL DDL触发器SQLServer之创建Transact-SQL DDL触发器
DDL触发器原理
DDL 触发器用于响应各种数据定义语言 (DDL) 事件。 这些事件主要与以关键字 CREATE、ALTER、DROP、GRANT、DENY、REVOKE 或 UPDATE STATISTICS 开头的 Transact-SQL 语句对应。 ...[2018/10/18]
SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析
在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE ''%search_string%''是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问...[2018/10/18]
SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果
一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) &...[2018/10/18]
SQL Server设置联合主键
一般情况下,SQL Server里的每一张表我们都会设置一个主键且只能设置一个主键,但某些场景下,我们需要把多个列一起当做主键,此时就可以设置联合主键。
假如表原来已经设置过了主键,需要先删除原来的主键约束。
T-SQL语句如下:
ALTER TABLE [dbo].[Channe...[2018/10/18]
SQL server 2012 数据库日志缓存过大
由于我公司的每日数据录入量较多,数据库日志与日俱增,前两天就出现了,因为数据库日志太大导致了 服务器磁盘空间不足,于是我上网查了一下,终于找到了一个数据库日志文件压缩的方法
原文出处:http: blog.sina.com.cn blog_491d1f37010131mk.html
第一步:打...[2018/10/17]
SQLServer之创建INSTEAD OF INSERT,UPDATE,DELETE触发器
INSTEAD OF触发器工作原理
INSTEAD OF表示并不执行其所定义的操作INSERT,UPDATE ,DELETE,而仅是执行触发器本身,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执行这些操作,而是把操作内容交给触发器,让触发器检查所进行的操作是否正...[2018/10/16]
SQLServer之创建AFETER DELETE触发器
DML AFTER DELETE触发器创建原理
触发器触发时,系统自动在内存中创建deleted表或inserted表,inserted表临时保存了插入或更新后的记录行,deleted表临时保存了删除或更新前的记录行,内存中创建的表只读,不允许修改,触发器执行完成后,自动删除。
delete触发...[2018/10/15]
mssql sqlserver 快速表备份和表还原的方法mssql sqlserver 快速表备份和表还原的方法
摘要: 在sqlserver维护中,我们偶尔需要运行一些sql脚本对数据进行相关修改操作,在数据修改前我们必须对表数据进行备份来避免出现异常时,可以快速修复数据, 下文讲述sqlserver维护中,快速备份表和表还原的方法,如下所示: 实验环境:sql server 2008 R2
...[2018/10/15]
SQL Server Mirror 断开后,删除副本上镜像数据库
一般而言,SQL Server 在数据库级别进行数据同步的方式主要有三种 1.日志传送;2.Mirror(镜像);3. AlwaysOn。复制订阅技术理解为表级别的同步,不归结为数据库级别的同步。
在Mirror维护管理过程中,有一种需求就是在镜像断开后删除镜像库再重建。
但有的时候,直接删除...[2018/10/15]
SQL SERVER 查询与整理索引碎片
重建索引
1 use DATABASE_NAME;
2
3 DECLARE @TableName VARCHAR(255)
4 DECLARE @sql NVARCHAR(500)
5 DECLARE @fillfactor INT
6 SET @fillfactor = 80
...[2018/10/15]
SQL Server: Datetime,Datetime2SQL Server: Datetime,Datetime2
select CONVERT(nvarchar(50), ''2018-10-10 10:13:32.000'', 126)
select convert(nvarchar(MAX), ''2018-10-10 10:13:32.999'',126)
-- 考试记录(员工答题答案...[2018/10/12]
SQLServer之创建DML AFTER UPDATE触发器SQLServer之创建DML AFTER UPDATE触发器
DML AFTER UPDATE触发器创建原理
触发器触发时,系统自动在内存中创建deleted表或inserted表,inserted表临时保存了插入或更新后的记录行,deleted表临时保存了删除或更新前的记录行,内存中创建的表只读,不允许修改,触发器执行完成后,自动删除。
update触发...[2018/10/12]
SQL SERVER
今天写SQL的时候遇到一个问题,字段Name为varchar类型的时候,想要根据它排序
明显varchar类型排序的话正常方法肯定不行,只能更改字段类型,经大佬指点后get到一个好办法
SELECT * from 表名字 ORDER BY lef...[2018/10/12]
SQLServer之创建DML AFTER INSERT触发器SQLServer之创建DML AFTER INSERT触发器
DML AFTER INSERT触发器创建原理
触发器触发时,系统自动在内存中创建deleted表或inserted表,内存中创建的表只读,不允许修改,触发器执行完成后,自动删除。
insert触发器工作原理:第一步执行insert插入语句,在表中插入数据行,第二步触发insert触发器,向系统...[2018/10/11]
工作日交易数据的闪电快速分析工作日交易数据的闪电快速分析
在本文中,我们将分享在为事务性数据构建高度可伸缩的多租户分析服务时所吸取的教训。我们将从大局和业务需求开始。然后描述具有用于数据准备、发布和查询引擎的批处理和交互式模块的体系结构,并注意相关的Spark技术。然后我们将深入Prism查询引擎的内部,重点介绍所使用的Spark SQL、DataFra...[2018/10/10]
mssql sqlserver获取指定月份当月天数总和
摘要: 下文通过sql函数的形式,获取指定月份的总天数 实验环境:sqlserver 2008 R2
制作思路: 1. 获取指定月份的第一天, 2. 并采用dateadd向后加一个月形成一个新的日期 3. 将两个日期相减,并返回之间的相差天数,作为指定月份的...[2018/10/10]
SqlServer执行Insert命令同时判断目标表中是否存在目标数据
针对于已查询出数据结果, 且在程序中执行Sql命令, 而非数据库中的存储过程
INSERT INTO TableName (Column1, Column2, Column3, Column4, Column5) SELECT Value1, Value2, Value3, Value4, Va...[2018/10/9]
SQLServer之触发器简介
触发器定义
触发器是数据库服务器中发生事件时自动执行的一种特殊存储过程。SQLServer允许为任何特定语句创建多个触发器。它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对数据库进行操作时就会激活它执行。
触发器分类
分为DML触发器、DDL触发器、登录触发器、嵌套触发器、递归触发...[2018/10/9]
mssql sqlserver 指定特定值排在表前面mssql sqlserver 指定特定值排在表前面
转自:http: www.maomao365.com/?p=7141
摘要: 下文讲述sql脚本编写中,将 特定值排在最前面的方法分享, 实验环境:sqlserver 2008 R2
例:将数据表中指定值为0的行排在最前面呈现给用户
create table tes...[2018/10/9]
SQL语句NOT IN优化之换用NOT EXISTS
NOT IN查询示例(示例背景描述:根据条件查询Questions表得到的数据基本在PostedData表中不存在,为完全保证查询结果在PostedData表中不存在,使用NOT IN):
SET STATISTICS PROFILE ON;
SET STATISTICS...[2018/10/8]
利用SQL活动和监视器找出耗时与占用CPU较高的不良SQL语句
SQL活动和监视器是SQL Server自带的一个功能,在不断的升级优化中功能也越来越强大。
运行方式:服务器-->右键-->活动和监视器
可以看到很多数据库重要的运行状态。
1.等待任务较多时需要注意是否有锁表和有大量耗时SQL执行。
2.最近耗费大量资源的...[2018/10/8]
(摘)sql-索引的作用(超详细)
(一)深入浅出理解索引结构
实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非...[2018/10/8]
数据库设计三大范式数据库设计三大范式
面试的时候经常被问,数据库设计三大范式,网上版本超级多,有的好难理解,就看这个容易理解...
https: www.cnblogs.com/waj6511988/p/7027127.html[2018/10/8]
SQL Server基础之默认跟踪SQL Server基础之默认跟踪
用过SQL Server Profiler的都知道,它可以跟踪SQL Server,并将SQL Server执行过的SQL显示在界面。默认跟踪(Default Trace)便是集成在SQL Server中,和SQL Server Profiler功能类似的一项服务,它的...[2018/10/8]
SQL Server基础之库级触发器
触发器分为两种,一种与数据表绑定,响应数据表指定动作(insert、delete或update),此处称为表级;一种与数据库本身绑定,响应数据定义(DDL)语句(主要是CREATE、ALTER 和 DROP 开头的语句),此处称为库级。本篇以下所说触发器皆指库级触发器。
...[2018/10/8]
SQL Server基础之登陆触发器
虽然同表级(DML)触发器和库级(DDL)触发器共顶着一个帽子,但登陆触发器与二者有本质区别。无论表级还是库级,都是用来进行数据管理的,而登陆触发器是纯粹的安全工具。
登陆触发器只响应LOGON事件,在登陆数据库成功后、用户会话未实际建立前触发。登陆数据库失败,如账号...[2018/10/8]
SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
按照ASCII码,
SELECT char(64)
例如64 对应 @,则
SELECT REPLACE(''abc@qq.com'', CHAR(64), ''kk'');
则结果为 abckkqq.com
依此类推,
去掉其他特殊符号,参考ASCII码对照表,
去掉tab符...[2018/9/30]
SQLServer之删除索引
使用SSMS数据库管理工具删除索引
使用表设计器删除索引
表设计器可以删除任何类型的索引,本示例演示删除XML辅助索引,删除其他索引步骤相同。
1、连接数据库,选择数据库,展开数据库-》选择数据表,右键点击-》选择设计。
2、在表设计器窗口-》选择要删除索引的数据列-》右键点击-》选择要删...[2018/9/30]
SQL 查看SQL语句的执行时间 直接有效的方法
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。
通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:
SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以...[2018/9/30]
存储过程代码自动备份
首先在master库下建立表ProcSqlTable和BackProcSqlTable。ProcSqlTable存放存储过程当前版本代码,BackProcSqlTable存放历史版本代码。
USE [master]
GO
CREATE TABLE [dbo].[BackProcS...[2018/9/30]
SQL Server中通用数据库角色权限处理
SQL Server中通用数据库角色权限处理 最近和同事在做数据库权限清理的事情,主要是删除一些账号;取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限。但是这种工作完全是一个体力活,而且是吃力不讨好,...[2018/9/30]
mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享
摘要: 今天对物理数据表,进行增加列操作后,程序一直显示无法找到相应列,通过仔细比对发现,视图中无相应列更新,下文将具体的解决方法分享如下:
例:
create view vw_test as
select * from tableName
go
...[2018/9/30]
SQLServer之修改索引
使用SSMS数据库管理工具修改索引
使用表设计器修改索引
表设计器可以修改任何类型的索引,修改索引的步骤相同,本示例为修改唯一非聚集索引。
1、连接数据库,选择数据库,选择数据表-》右键点击表-》选择设计。
2、在表设计器窗口-》选择要修改的数据列-》右键点击-》选择要修改的索引类型。
...[2018/9/30]
mssql 存储过程调用另一个存储过程中的结果的方法分享
转自:http: www.maomao365.com/?p=6801
摘要: 下文将分享"一个存储过程"中如何调用"另一个存储过程的返回结果",并应用到自身的运算中
在实际开发中,我们经常会遇到在一个存储过程中调用另一个存储过程的返回结果(存储过程相互应用),实现思路:主要采用临时表...[2018/9/30]