![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL SERVER2008
文章平均质量分 80
Felixzhaowenzhong
勤能补拙
展开
-
数据库异地备份还原
<br />第一步: 建立共享文件夹<br />调用CMD窗口 net share backupfiles=e:/backupfiles<br />简要说明:<br />net share : 是WINDOWS内部的网络命令。<br />作用:建立本地的共享资源,显示当前计算机的共享资源信息。<br />语法:参见 net share /<br />第二步: 建立共享信用关系<br />master..xp_cmdshell 'net use //wenzhong/backupfiles public /u原创 2011-03-24 09:03:00 · 885 阅读 · 0 评论 -
懒人懒到家 批量修改DB中字段类型
---------这里举例 varchar 转 nvarchar 类型---------将DB中 字段为varchar(10)的改为nvarchar(20)---------字段为varchar(20)的改为nvarchar(40)declare @tb_name Nvarchar(120)declare @column_name Nvarchar(120)decla原创 2012-05-17 15:12:00 · 1763 阅读 · 0 评论 -
cross apply 和 outer apply
使用APPLY运算符可以实现查询操作的外部表表达式返回的每个调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。APPLY存在两种形式: CROSS APPLY 和 OUTER APPLY .CROSS AP原创 2010-12-29 11:21:00 · 2236 阅读 · 0 评论 -
DBCC 常用命令解析
1、查询DBCC 的所有命令 DBCC HELP('?');2、查询指定的命令说明 DBCC HELP ('checkident');3、查询当前活动链接的 设置选项 DBCC USEROPTIONS;4、检查指定数据库的磁盘空间分配结构的一致性 DBCC CHECKALLOC ('database_name') ;5原创 2011-07-14 10:35:37 · 4695 阅读 · 0 评论 -
GROUP BY
常规GROUP BY 后的子句包括 GROUPING SETS、CUBE、ROLLUP 这三个运算符可以生成与使用 UNION ALL 来组合单个分组查询时相同的结果集;但是使用者其中一种更有效。 GROUPING SETS: 在一个查询中指定数据的多个分组。仅聚合指定分组,而不聚合由CUBE或ROLLUP生成的整组聚合。其结果与针对指定的租执行UNIO原创 2011-06-23 10:26:00 · 1610 阅读 · 0 评论 -
递归树查询
--表结构CREATE TABLE [dbo].[PSY_Web_MenuClass]( [ModuleCode] [varchar](32) NOT NULL, [ModuleName] [varchar](128) NOT NULL, [ShortModuleName] [varchar](64) NULL, [LevelID] [int] NOT NULL, [Par原创 2011-03-11 10:42:00 · 1358 阅读 · 0 评论 -
SQL 执行顺序
今天突然被一同事问起SQL的标准执行顺序是怎样的,当时一时居然没有说出来。后来想想最基础的理论被忘干净了,惭愧。现在将其写下来以加深影响。 在SQL语言中,第一个被处理的子句是FROM子句.每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对客户端应用程序或者外部查询不可用。只是最后一步生成的表才会返回 给客户端。即SQL执行步骤 fromonjoin原创 2011-11-25 10:55:05 · 576 阅读 · 0 评论 -
SQL DDL触发器
--同一个数据库服务器上 不同数据库 表结构同步 CREATE PROCEDURE PRO_DB_DDL(@sql nvarchar(max))asbegin set nocount on declare @str nvarchar(max) set @str=' use mytest ' set @str=@str+' '+@sql execute (@str原创 2012-02-10 14:41:26 · 721 阅读 · 0 评论 -
清理或增加 错误日志归档文件
SQLSERVER2008 默认会有 7个错误日志归档文件 和10个代理错误日志归档文件,可以设置最大错误日志归档文件数(MIN 6---MAX 99)有时候由于某个归档文件特别大,查看时会花费很多时间或不想让其占用过多的空间。就可以定时或随时清理掉。清理或生产新的归档文件(错误日志归档文件)EXEC sp_cycle_errorlog 清理或生产新的归档文原创 2012-02-13 17:03:31 · 843 阅读 · 0 评论 -
最大连续出现的次数
with CET_Table as (select 'A' name,1 as [month],0 as valueunion all select 'A',2,1union all select 'A',3,0union all select 'A',4,0 union all select 'A',5,1union all select 'A',6,0 u原创 2012-05-09 11:34:12 · 925 阅读 · 0 评论 -
sql server2008 角色 简介
固定数据库服务器角色 SYSADMIN 系统管理员角色: 拥有 sql server系统的所有权限许可;SETUPADMIN 安装管理员角色: 拥有 增加、删除链接服务器、建立数据库复制以及管理扩展存储过程的权限许可;S原创 2011-07-06 09:56:44 · 4306 阅读 · 0 评论 -
更改跟踪
---配置更改跟踪及查询更改跟踪信息。--更改跟踪捕获表的数据行更改这一行为,但不会捕获更改的具体数据。捕获的结果包含表的主键及相关的跟踪信息(例如更改的操作类型、更新操作影响的列等)。可以利用这个捕获的结果来确定表的最新更新,并可以关联原始来来获取最新的数据.use master goALTER DATABASE TEST SET CHANGE_TRACKING =ON|O原创 2011-08-23 15:56:49 · 755 阅读 · 0 评论 -
手动 重编译存储过程、SQL语句、函数、触发器、视图
SQL Server 中,强制重新编译存储过程的方式有三种:sp_recompile 系统存储过程强制在下次执行存储过程时对其重新编译。具体方法是:从过程缓存中删除现有计划,强制在下次运行该过程时创建新计划。创建存储过程时在其定义中指定 WITH RECOMPILE 选项,指明 SQL Server 将不为该存储过程缓存计划,在每次执行该存储过程时对其重新编译。当存储过程的参数值在原创 2011-11-25 11:31:25 · 3647 阅读 · 1 评论 -
一行变多行(整理总结)
--XMLDECLARE @one Table( CompanyID INT, CompanyCodes VARCHAR(100) ) insert into @one select 1,'1|2' union all select 2,'1|2|3' union all select 3,'1|2|3|4'union all se原创 2012-05-09 11:12:24 · 1698 阅读 · 0 评论 -
数据翻页--存储过程实现
CREATE PROCEDURE GET_PAGE_LIST @uid bigint, -- 用户ID @id bigint, -- 主键 @forward int, -- 为0首页、1是下翻页,2上翻页、3末页 @num intAS if @forward = 0 select top (@num) id,trans_id,user_id,in_date,o原创 2011-08-12 13:36:33 · 675 阅读 · 0 评论 -
修复 数据库或表或索引 逻辑错误提示 问题
先执行DBCC CHECKDBuse master declare @databasename varchar(255) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态 dbcc checkdb(@原创 2012-05-09 11:37:20 · 2146 阅读 · 1 评论 -
bcp 小工具 及 openrowset/openquery/opendatasource 用法小结
BCP 小工具用法bcp {[[database_name.][schema].]{table_name | view_name} | "query"} {in | out | queryout | format} data_file [-mmax_errors] [-fformat_file] [-x] [-eerr_file] [-Ffirst_row]原创 2011-12-07 14:54:43 · 1305 阅读 · 0 评论 -
配置 SQL SERVER2008 数据库邮件 功能
数据库邮件功能是 基于SMTP实现的。 首先在系统中 配置SMTP功能。即 在 “添加/删除程序”面板中 “增加/删除WINDOWS组件”,选中并双击 打开"IIS"或 “应用程序”,勾选 "SMTP SERVICE"然后 一路 点“下一步”即可。添加成功 SMTP 组件后,即可配置 数据库邮件功能了。步骤如下:使用SQL Server发送电子邮件邮件需要三个基本配置步骤 1) 创建配原创 2011-12-05 17:50:19 · 6035 阅读 · 0 评论 -
SQL SERVER 事务执行情况跟踪分析
---查看现在所有的事务select '正在运行事务的会话的 ID'=session_id, --session_id与transaction_id的对应关系 '事务的 ID'=transaction_id, '正在处理事务的会话中的活动请求数'=enlist_count, '用户or系统事务'=case is_user原创 2013-11-15 17:15:29 · 5283 阅读 · 0 评论 -
读取SQL SERVER日志及代理日志
最近闲的没事,为了以后的工作提高效率,其实是不想让自己的眼睛和手 太累。于是写了如下脚本 来解放自己。 ---查看每个磁盘剩余空间大小(M)Exec master.dbo.xp_fixeddrives --或者declare @Fixed_tb table(Drive_NO char(1),Remainder_M bigint)INSERT INTO @Fixed_tb ex原创 2012-09-07 16:19:07 · 2710 阅读 · 0 评论 -
四大排序函数
row_number() over(partition by clause order by filed asc|desc )----连续的从1开始到n的排序号 rank() over ( partition by clause order by filed asc|desc)---不连续的可以出现重复排序号 dense_rank() over (partition by clause ord原创 2010-12-29 11:16:00 · 807 阅读 · 0 评论 -
修改 数据库文件名(逻辑文件名)
--修改 数据库文件名(逻辑文件名) DECLARE @name VARCHAR(64) DECLARE @i INT, @j INT, @count INT DECLARE @newname VARCHAR(164) DECLARE @db_name VARCHAR(132) DECLARE @sql N原创 2013-01-08 19:35:27 · 3715 阅读 · 0 评论 -
判断两个表结构及其数据是否相等
--比较两个表是否相等if (select checksum_agg(binary_checksum(*)) from A) = (select checksum_agg(binary_checksum(*)) from B)print '相等'elseprint '不相等'原创 2012-12-26 17:34:12 · 2016 阅读 · 1 评论 -
通过SQL Server 创建windows 帐号
-----通过SQL Server 创建windows 帐号EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO exec xp_cmdshell 'net user User_name原创 2012-12-26 17:43:26 · 1023 阅读 · 0 评论 -
磁盘冗余阵列 RAID
本文来自 百度百科文库 http://baike.baidu.com/view/7102.htm RAID是“Redundant Array of Independent Disk”的缩写RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别转载 2011-07-15 11:11:36 · 8659 阅读 · 0 评论 -
表变量和临时表的区别
临时表 1、存储在tempdb中,类似于表的定义,即可以创建约束、索引、定义统计、主键和外键等,对临时表的操作,系统会产生并记录日志。临时表中同样存在锁的机制 2、临时表分为本地和全局两种:本地临时表格式是以 # 前缀的,创建临时表的链接断开,临时表即消亡,也可以手动 drop 掉临时表。最好能手动 DROP一次。 3、全局临时表是以 ## 前缀的,只有全部链接到全局临时表原创 2011-11-23 17:00:27 · 704 阅读 · 0 评论 -
sqlserver2008 事务日志物理文件过大无法缩小 分析
前段时间在做数据库维护时,遇到 日志无法收缩。最后和同事一起分析了下原因。将原因做了一个汇总。现将 分析结果分享一下。以共享有相同情况而又未解决的同仁们参考。 查看日志信息 dBCC LOGINFO('数据库名') 我们看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如果原创 2012-09-28 17:56:22 · 4162 阅读 · 0 评论 -
自动维护索引--联机重建或组织索引
最近老是发现 以前写的 自动维护索引的 作业 报错。提示: 不能对 索引 '某某' 执行联机操作,因为该索引包含数据类型为 text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)、xml 或大型 CLR 类型的列 'additional_parameters'。对于非聚集索引,该列可能是索引的包含列。对于聚集索引,它可原创 2012-09-07 16:24:23 · 2182 阅读 · 0 评论 -
自动维护索引--脱机重建或组织索引
最近老是发现 以前写的 自动维护索引的 作业 报错。提示: 不能对 索引 '某某' 执行联机操作,因为该索引包含数据类型为 text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)、xml 或大型 CLR 类型的列 'additional_parameters'。对于非聚集索引,该列可能是索引的包含列。对于聚集索引,它可原创 2012-09-07 16:25:12 · 1196 阅读 · 0 评论 -
事务隔离等级划分
隔离级别read uncommitted --读未提交,解决了更新丢失,产生脏读read committed--读已提交,解决脏读,修改中的数据不可读,不可重复读。默认级别repeatable read--对查询行进行S锁,可重复读,产生幻读serializable --进行行锁更新丢失指:最后的更新覆盖了前面事务的更新操作结果原创 2011-07-15 10:37:04 · 1035 阅读 · 0 评论 -
CDC---变更数据捕获
----变更数据捕获--变更数据捕获使用异步进程读取事务日志,获取DML更改实际数据做为数据捕获的结果。在捕获结果中,还包含更改相关的一些信息(例如更改的操作类型、更新操作影响的列等)。可以从捕获结果中获取DML更改的全部数据,而无需查询数据变更的原始表---启用数据捕获功能use database_namegoEXEC sys.sp_cdc_enable_db;---原创 2011-08-23 17:00:40 · 1831 阅读 · 0 评论 -
所有权链接
最近发生的一个业务中牵扯到了所有权链接,于是把这几天学到的和实践的结果写了下来。希望能帮助与我类似的朋友--所有权链接是指一个对象调用另一个对象(可以是跨库跨架构)。1、如果在同一DB下同一SCHEMA下并为同一SCHEMA所有者情况下,如果给用户赋予一个存储过程 “执行权限”,而该用户没有对 对象拥有读、写、删 的任何权限。但是由于其有了 对存储过程 执行权限,那么该用户就可以原创 2011-12-01 09:25:21 · 1244 阅读 · 0 评论 -
SQL SERVER2008 存储过程、表、视图、函数的权限
EXEC sp_addrolemember N'db_owner', N'db'----将db 设置为 db_owner 角色中的一员EXEC sp_droprolemember N'db_owner', N'db'----将db 从 db_owner 角色 去除 ALTER AUTHORIZATION ON SCHEMA::[db_datareader] TO dbs ----给db原创 2011-06-24 11:02:00 · 5060 阅读 · 0 评论 -
紧急情况下就数据库从 恢复模式 转换到可用模式 的6个步骤.
--紧急情况下就数据库从 恢复模式 转换到可用模式 的6个步骤(数据肯能会有逻辑错误。比如没有COMMIT的数据就会 产生不一致)alter database dbname set single_user with rollback immediategoalter database dbname set emergency with rollback immediategos原创 2012-01-20 09:53:29 · 1801 阅读 · 0 评论 -
获取每个分类下的N条记录
--获取每个分类下的N条记录 select *from( select *,rn=row_number() over (partition by 类别 order by 日期 desc) from @tb)twhere rn <= N--或者select distinct b.*from @tb across apply (selec原创 2012-02-13 15:15:50 · 564 阅读 · 0 评论 -
SQL Server 2008中远程Service Broker实现
同样看该案例时 先看微软官方资料http://msdn.microsoft.com/zh-cn/library/ms166061%28v=sql.100%29.aspx 只有理解了相关的协议才能看懂该案例。转载自:http://www.cnblogs.com/down转载 2011-10-17 18:12:31 · 701 阅读 · 0 评论 -
SQL 链接服务器
远程链接服务器详细配置--建立连接服务器EXEC sp_addlinkedserver '远程服务器IP','SQL Server'--标注存储EXEC sp_addlinkedserver@server = 'server', --链接服务器的本地名称。也转载 2011-09-20 15:04:03 · 1876 阅读 · 0 评论 -
MSSQL 备份及相关核心系统存储过程
------下面是从不同的高手博客中摘取出来的。本来打算自己写一片来着。发现 高手们都写好了。所以这里就拿来直接用了。 --备份declare @sql varchar(8000) set @sql='backup database mis to disk='转载 2011-07-26 11:47:56 · 550 阅读 · 0 评论 -
SQL Server2008存储结构之基本系统视图(转)
--数据库实例的概要情况 SELECT * FROM SYS.SERVERS WHERE SERVER_ID=0 --兼容性视图SELECT * FROM SYS.SYSSERVERS --各个数据库的详细信息 SELECT * FROM SYS.DATABASES --兼容性视图SELECT * FROM SYS.SYSDATABASES --文件组的详细信息 SELECT * FROM SYS.FILEGROUPS --兼容性视图SELECT * F转载 2011-03-25 10:45:00 · 753 阅读 · 0 评论 -
SQL Server 统计信息相关操作(转)
SQLServer使用基于成本的优化(CBO),所以对表和索引提供的统计信息非常敏感。如果没有正确和最新的统计信息,那么SQLServer在为特定的查询产生最好的执行计划时会面临挑战。 SQLServer每个表上的统计维护使用下面的信息帮助优化器做出基于成本的决定: • 表的行数 • 表使用的页数 •自上次统计更新以来表的键被更改的数量 为索引(每一个索引)存储的另外信息包括: •第一列上等高的柱状图 •所有列前缀的密度 • 平均键长 当一个新索引转载 2011-03-25 10:40:00 · 7499 阅读 · 0 评论