一、概述 RESTORE ... WITH MOVE 选项允许您恢复数据库,但也可以指定数据库文件(mdf 和 ldf)的新位置。如果您要从该数据库的备份还原现有数据库,则不需要这样做,但如果您要从具有不同文件位置的不同实例还原数据库,则可能需要使用此选项。 RESTORE ... WITH MOVE 选项将让您确定数据库文件的名称以及创建这些文件的位置。在使用此选项之前,您需要知道这些文件的逻辑名称以及 SQL Server 的位置。 如果已经存在另一个使用您尝试还原的相同文件名的数据库并且该数据库处于联
如果你不确定需要哪种数据库,可以从与 SQL Server 版本匹配的 OLTP 版本开始。
◆ 一、概述 SQLSERVER有两个命令用于创建备份,分别是: BACKUP DATABASE BACKUP LOG 这些命令具有可用于创建完整、差异、文件、事务日志备份等的各种选项,以及用于指定备份命令应如何运行以及与备份如何存储的其他选项。 ◆ 二、BACKUP DATABASE BACKUP DATABASE命令提供了许多用于创建备份的选项,这使您可以根据你使用的选项对数据库进行完整备份、差异备份、文件备份等。 ◆ 2.1 创建完整的 SQL Server 备份到磁盘 该命令是 BACKUP DAT
查看存储过程定义 方法1.系统存储过程: sp_helptext USE AdventureWorks2012; GO EXEC sp_helptext N'AdventureWorks2012.dbo.uspLogError'; 方法2.系统函数:OBJECT_DEFINITION USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError')); 方
代码420行左右 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu 或者回复“AdventureWorks”来获取链接。 ---- --一,创建数据库 。 create database XXXDB--创建数据库 use XXXDB--使用数据库 create table Depart
前几天开始研究维护SQL Server,因为学校自己的教育系统非常烂,而且他们公司维护客服也非常坑爹。所以我就开始研究自己维护SQL Server而不是一有事情就找他们付费弄。
等了好久,SQL Server 2008终于正式发布了,官方网站提供了SQL2008的下载试用,不过有一点不爽的就是他居然把X86,X64和IA64三种处理器的版本放在了同一个ISO中,我使用的是X86的操作系统(想必大多数用户也是这样吧),但是我却要把这个支持X64和IA64的ISO下载下来,本来X86只有1.5G左右,现在却要下载3.5G的一个ISO。郁闷啊,我可怜的硬盘空间,又有2G被浪费了。
官方文档 https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-readerrorlog-transact-sql?view=sql-server-ver16
查看该存储过程的结果可以用 exec spEmployee '123' 或直接exec spEmployee
一:什么是触发器 触发器是一种响应特定事件的特殊类型的存储过程 insert update... drop alter...等事件都有相应的触发器 二:简单的触发器 下面一个例子是在插入或者修改记录的时候的一个触发器 其中inserted表是一个临时表 存储的是将要插入的信息 这个触发器的目的是检查将要插入的信息是否符合规定 (在product表里没有特殊的记录) 这个例子是check约束所不能解决的了的
很多初学者在开始安装AdventureWorks2008时,虽然成功安装了,但是却发现其他的数据库都有,就偏偏没有AdventureWorks2008,就如下图所示:
数据的导入导出是数据库管理员常见的工作任务之一,尤其是平面文件的导入导出。BCP 工具则为这些任务提供了强有力的支持,它是基于DB-Library,尤其是在生产环境中,从本地传送数据到服务器或从服务器传送数据到本地,因它无需提供图形界面,减少网络带宽,提高了传输速率。BCP的全称是BULK COPY PROGRAM,它是一个命令行程序,可以完全脱离SQL server进程来实现。
对视图创建的第一个索引必须是唯一聚集索引。创建唯一聚集索引后,可以创建更多非聚集索引。
SQL Server 2005一个我非常欣赏的特性就是有了专门优化程序,据说在2K下面也有,不过我没有用过,估计也不会怎么样. 不说2K还是说说2005的这个好东东.
如果我们想要把一个表内某个字段的值,复制到另一个表内的另一个字段,那么我们怎么做呢? 假如我们想把a表的EmailAddress替换为b表的PasswordHash, 那么我们可以基于BusinessEntityID来识别每一行来进行匹配并更变数值。
ISNULL函数 isnull(<要检查的表达式>,<如果为null时替换的值>)
如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/11/10/4794371.aspx
最近使用窗口函数的频率越来越高,这里打算简单介绍一下几个排序的函数,做一个引子希望以后这方面的问题能够更深入的理解,这里先简单介绍一下几个简单的排序函数及其相关子句,这里先从什么是排序开始吧。 排序函数是做什么的? 排序函数的作用是基于一个结果集返回一个排序值。排序值就是一个数字,这个数字是典型的以1开始且自增长为1的行值。由ranking函数决定排序值可以使唯一的对于当前结果集,或者某些行数据有相同的排序值。在接下来我将研究不同的排序函数以及如何使用这些函数。 使用RANK函数的例子 R
3.将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。 此示例演示如何使用 sp_procoption 设置过程自动执行。
◆ 一、背景描述 我们知道数据数据库的恢复模型决定了可以执行哪些类型的备份。在本节中,我们将讨论每个备份选项以及如何使用 SSMS 和 T-SQL 执行这些备份。 在本文中我们讨论如下内容: 完整备份 差异备份 文件备份 文件组备份 部分备份 仅复制备份 镜像备份 事务日志备份 ◆ 二、SQLSERVER备份类型 ◆ 2.1 SQL Server 完整备份 最常见的 SQL Server 备份类型是完整备份,也称为数据库备份。这些备份会创建数据库的完整备份以及事务日志的一部分,因此可以恢复数据库。这是最
完成后,会在 SQL Server 实例上安装 AdventureWorks 数据库。
我们有的时候会遇到整体数据类型更变的需求。 例如本来我的手机类型原本是“家用”,要修改成“工作”。 在数据中,手机类型,往往是直接UID类型来表示,或者简单的用1,2,3来标识。 以下就是当手机类型修改从2,3,都修改为1的方法。
最近使用窗口函数的频率越来越高,这里打算简单介绍一下几个排序的函数,做一个引子希望以后这方面的问题能够更深入的理解,这里先简单介绍一下几个简单的排序函数及其相关子句,这里先从什么是排序开始吧。
修改主键时,必须先删除现有的PRIMARY KEY 约束,然后再用新定义重新创建该约束。
使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据。
存储过程(Stored Procedure)是预编译SQL语句的集合,这些语句存储在一个名称下并作为一个单元来处理。存储过程代替了传统的逐条执行SQL语句的方式。一个存储过程中可包含查询、插入、删除、更新等操作的一系列SQL语句,当这个存储过程被调用执行时,这些操作也会同时执行。
oracle ------------------------------------------------------------------------------------------------- Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。 创建示例表: CREATE TABLE TBL_TEST ( ID NUMBER, NAME VARCHAR2(100 BYTE), PID NUMBER
代码大概200行左右 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu 或者回复“AdventureWorks”来获取链接。 ---- use AdventureWorks --切换到AdventureWorks数据库 --创建Student表和Marks表,用于操作各种联接 cr
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间。 身份验证是验证主体(需要访问SQL Server数据库的用户或进程,是声称是的人或物)的过程。主体需要唯一的身份,这样的话SQL Server可以决定主体有哪个许可。在提供安全访问数据库对象中,正确的身份验证是必须的第一步。 S
1.第一个示例创建 uspVendorAllInfo 过程,该过程返回 Adventure Works Cycles 数据库中所有供应商的名称、所提供的产品、信用等级以及可用性。
代码大概80行左右 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:
之前很羡慕MySQL 有这样的工具可以把数据库里的数据导成脚本,SQL Server 2005 的时候大牛Pinal Dave写了个Database Publishing Wizard,具体用法参考他写的文章SQL SERVER – 2005 – Generate Script with Data from Database – Database Publishing Wizard。SQL Server Management Studio 2008现在已经自带了这样的功能,下面我就来演示下如何使用: 1、打
计算列是虚拟列,并非实际存储在表中,除非此列标记为 PERSISTED。 计算列的表达式可以使用其他列中的数据来计算其所属列的值。
在某些情况下,作为DBA,您需要将模式和特定表的内容从数据库复制到同一实例中或在不同的SQL实例中,例如从生产数据库中复制特定表到开发人员以进行测试或排除故障。 SQL Server提供了许多方法,可以用来执行表的数据和模式复制过程。为了研究这些方法中的每一个,我们将考虑下面的场景: 托管SQL服务器:localhost。这两个数据库都驻留在同一个SQL Server 2014实例中。 源数据库:AdventureWorks2012。 目标数据库:SQLShackDemo。 将从源数据库复制到目标数据库的表
前言: 如果碎片程度小于30%,建议使用重组而不是重建。因为重组不会锁住数据页或者数据表,并且降低CPU的资源。 总得来说,重组会清空当前的B-TREE,特别是索引的叶子节点,重组数据页和消除碎片。和重建不同,重组不会添加任何新数据页。 准备工作: 为了了解是否有必要重组索引,需要首先查看碎片程度,如果在10%以下,那一般没必要做什么维护,如果在10%~30%,就建议进行重组。 步骤: 1、 以下各种重组索引的方法: --不指定参数重组索引: ALTER INDEX [idx_refno] ON [or
我使用的操作系统是 win 8.1,由于对早前安装的sql server 2008的兼容性不太好,要安装对应的service pack来解决一下这个问题。
概要 ---- 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu 或者回复“AdventureWorks”来获取链接。 代码我就放在文中了。 if exists(select * from sys.databases where name='SchDB') drop database Sc
1 检测到drop table和alter table的sql,自动回滚并输入提示信息
(这种更稳妥,因为如果是短链接则直接查询master.dbo.sysprocesses可能抓不到现场,但是事务日志如果长期没shrink则会比较慢)
在安装SQL Server2008时,默认是不安装示例数据库的,如果要用到的话,就得自行下载相应的数据库,然后安装,当然,安装也还是要有一定的方法的,不然装不上。
今天在创建数据库的时候突然发现,xp_cmdshell的存储过程不能用了,网上一搜,发现大部分都是只关闭安全配置,然后就有了下文 代码:具体的看注释,值得一提的是==》reconfigure with
2 定义变量给变量赋值 declare @myval int; set @myval = 10; set @myval1 = @myval2*12; --下面语句是在查询中赋值变量 select @myval = max(id)+1 form mytable
一个过程最多可以有 2100 个参数,每个参数都有名称、数据类型和方向。 还可以为参数指定默认值(可选)。
介绍 改变数据类型是一个看起来很简单的事情,但是如果表非常大或者有最小停机时间的要求,又该如何处理那?这里我提供一个思路来解决这个问题。 背景 在一个常规SQL Server heath检查中,使用sp_blitz,我们最大的生产表之一引发了令人担忧的警报。保存客户订单信息的表的ID列是一个INT datatype,很快就将达到最大值。 这个表大约有500GB,有超过9亿行。根据在该表上每天的平均插入数,我估计未来八个月后,在这张表上的插入将会溢出。这是一个订单输入表,由于客户的活动,需要24小时的插入。一
进入sqlcmd使用:out xxx产生的数据文件,因为sqlcmd export to file 默认情况下,中国的乱码。因此,使用-u(unicode)开关
在业务需求中,经常需要我们在系统中能够记录历史信息,能够查看到历史变动情况,这时我们可以通过增加开始结束时间字段来记录数据的历史版本。对数据的历史记录主要分为:关系、属性历史,实体历史和变更历史。
为了帮助管理数据库级别的安全性,SQL Server具有数据库角色。就像服务器角色一样,也有两种不同类型的数据库角色:固定的和用户定义的。固定的数据库角色就像固定的服务器角色一样,这意味着它们拥有一组特定的权限,这些权限不能被更改。
作者:David Durant,2013/01/25(首次发布于:2011/06/22) 关于系列 本文是属于Stairway系列:Stairway to SQL Server Indexes 索引是数据库设计的基础,并告诉开发人员使用数据库关于设计者的意图。不幸的是,当性能问题出现时,索引往往被添加为事后考虑。这里最后是一个简单的系列文章,应该使他们快速地使任何数据库专业人员“快速” 这个阶段的前面的层次提供了一般索引和非聚集索引的概述。它以下面关于SQL Server索引的关键概念结束。当请求到达您的数
作者:David Durant,2014/11/05(首次发布:2011/02/17) 关于系列 本文属于进阶系列的:Stairway to SQL Server Indexes 索引是数据库设计的基础,并告诉开发人员使用数据库大量关于设计人员的意图。不幸的是,当性能问题出现时,索引通常被添加为事后的想法。最后这一系列简单的文章,应该能使任何数据库专业人员快速的“加快速度”。 ---- 此第一级引入SQL Server索引:数据库对象,使SQL Server能够在最短时间内查找和/或修改所请求的数据,使用最
改变数据类型是一个看起来很简单的事情,但是如果表非常大或者有最小停机时间的要求,又该如何处理那?这里我提供一个思路来解决这个问题。
领取专属 10元无门槛券
手把手带您无忧上云