-----------------------------系统存储过程-------------------------------- --列出SQL Server实例中的数据库sp_databases--返回SQL Server.数据库网关或基础数据源的特性名和匹配值的列表sp_server_info--返回当前环境中的存储过程列表sp_stored_procedures--返回当前环境下可查询的对象的列表(任何可出现在 FROM 子句中的对象)sp_tablesselect * from s…
SqlServer中的系统数据库有五个,平时写代码不太关注,今天一时兴起研究了一下. 1. master 记录SQL Server系统的所有系统级信息,例如:登陆账户信息.链接服务器和系统配置设置.记录其他所有数据库的存在.数据文件的位置.SQL Server的初始化信息等.如果master数据库不可用,则无法启动SQL Server. 2.msdb 用于SQL Server代理计划警报和作业.数据库定时执行某些操作.数据库邮件等. 3.model 用作SQL Server实例上创建的所有数据库…
( 一)利用Sql语句查询数据库中的所有表 1.利用sysobjects系统表 select * from sysobjects where xtype='U'  2,利用sys.tables目录视图 sys.tables目录视图,为每个表对象返回一行. select * from sys.tables 注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用. 3,利用存储过程sp_tables exec sp_tables (二)利用Sql语句查询数据中的…
由于项目的需要,很多模块都要实现批量删除的功能.为了方便模块的调用,把批量删除方法写成自定义函数.直接上代码. 自定义函数: ALTER FUNCTION [dbo].[func_SplitById] (@str varchar(50),@split varchar(10))--传过来的id字符串 --分割的标志 RETURNS @t Table (id int) --返回一个表 AS BEGIN DECLARE @x XML --进行拼接 SET @x = CONVERT(XML,'<item…
1.系统数据库(中央管理机构):用来管理用户创建用户数据的数据库. 系统数据库中包含如下数据库: (1)master:记录了sqlserver中所有系统级别的信息,包括所有的登录账户.系统配置,还有其他数据库以及数据库文件的存放位置,初始化信息等. (2)model:模板数据库.当创建新数据库的时候就会有一个模板,我们可以看到我们创建的数据库结构都是相同的,那是应为使用了同一个模板数据库. (3)msdb:完成数据库的代理.备份.作业以及数据库的还原信息 (4)tempdb:用来存储数据库中所有…
Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. 1.1存储过程的定义:存放在服务器上预先编译好的sql语句,可以给存储过程传递参数,也可以从存储过程返回值. 优点:提供了安全访问机制,比如可以将不同的存储过程的执行权限赋予权限不同的用户:改进了执行性能,因为存储过程是预编译的:减少了网络流量,因为在调用存储过程时,传递的字符串很短,没有很长的s…
Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的存储过程,Insert,Update,Delete After触发器:记录被改变之后激活执行 Instead of触发器:记录被改变之前激活执行. DDL触发器:响应数据定义语言执行时触发执行的存储过程,一般用于执行数据库中的管理任务 审核和规范数据库的操作: 防止数据表结构被更改或删除 2. ht…
原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字段值,然后再利用这些值进行逻辑运算(自己的逻辑),最后将结果输出.话不多说,直接上图,看是否是你想要的结果: 说明:[区域1为要用来测试的表][ 区域2 为表中数据][区域3 为表中数据jan+feb+mar列值的和5] 存储过程代码如下: 从上图可以看出既然可以拿到jan .feb.mar列的值,…
 承接上文,本文讲述怎样使用系统存储过程来监控系统. SQLServer相同也提供了一系列系统存储过程用于监控SQLServer,获取当前进程.会话.请求以及锁定的具体信息.本文将演示系统存储过程来实现这些监控. 情景: 有时候你会发现应用程序突然变得非常慢,常常须要等待数据库响应,此时你须要高速查看是否请求被堵塞或者挂起. 准备工作: 在本文中,将使用下面存储过程来获取当前进程的信息: Sp_who Sp_who2 步骤: 1.  打开SSMS连到SQLServer实例并打开新查询窗体.…
-- 来源于网络 -- 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全配置 xp_logininfo --*返回有关Windows 认证登录的信息. xp_msver --*返回有关Microsoft SQL Server 的版本信息 xp_enumgroups    --返回Wi…
Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数: go ))--指定参数名,和返回类型 stuNo returns int --指定返回类型 begin declare @订单总数 int --学生人数sumstudent select @订单总数=count(订单.订单号) from 订单 join 职工 on 订单.职工号=职工.职工号 w…
JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) http://blog.itpub.net/28699126/viewspace-1074595/ http://zhangkui.blog.51cto.com/1796259/340557/…
一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存储过程 ),),)) as begin declare @maxid int begin ; end --set IDENTITY_INSERT testuser on insert into testuser(id,names,address,paw)values(@id,@names,@addr…
raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ] 其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ] 简要说明一下: 第一个参数:{ msg_id | msg_str | @local_variable } m…
SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回:   1.   用return返回数字型数据   2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   3.   直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集 方法一:用return返回数字型数据 1. 创建存储过程--SQLSERVER 2005示例数据库USE Adventur…
  raiserror的作用: raiserror 是用于抛出一个错误 其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ] 简要说明一下: 第一个参数:{ msg_id | msg_str | @local_variable } msg_id:表示可以是一个sys.messages表中定义…
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老师写的<SQLSERVER企业级平台管理实践>里提到了一下假脱机 在SQLSERVER I/O问题的那一节 在性能监视器里,有一个计数器“worktables/sec” : 每秒创建的工作表数.例如,工作表可用于存储查询假脱机(query spool),LOB变量,XML变量,表变量,游标的临时结…
1 --SQLSERVER中的加密函数 2013-7-11 2 ENCRYPTBYASYMKEY() --非对称密钥 3 ENCRYPTBYCERT() --证书加密 4 ENCRYPTBYKEY() --对称密钥 5 ENCRYPTBYPASSPHRASE() --通行短语(PassPhrase)加密 6 7 8 --------------------------------------------------------------------------------------- 9 -…
部分具有统计功能的TSQL语句(例如DBCC语句,全局函数,系统存储过程) 这些功能也能帮助用户了解和监控SQLSERVER的运行情况 DBCC语句,DBCC语句是SQL2005的数据库控制台命令 DBCC语句不仅能检查数据库的性能和活动,还能检查数据库的物理和逻辑一致性 许多DBCC语句能够对检测到的问题进行修复,例如 .DBCC CHECKTABLE --检查组成表或索引视图的所有页和结构的完整性 --例如,检查AdventureWorks数据库中的HumanResources.Employ…
SQLServer中的全局变量   变量 Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量.局部变量 局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部.局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数.另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等.局部变量被引用时要在其名称前加上标志"@",而且必须先用DECLARE命令定义后才可以使用. 全局变量…
转自:http://www.maomao365.com/?p=6864 摘要: 下文讲述采用sql脚本批量删除所有存储过程的方法,如下所示: 实验环境:sqlserver 2008 R2 平常使用sql脚本,删除存储过程,我们只可以使用删除命令一条一条的删除存储过程,下文介绍一种简便方法,可以对系统中所有的存储过程进行删除,<span style="color:red;">实现思路: 1 采用临时表将存储过程名称缓存 2 通过循环临时表,输出删除存储过程脚本 3 执行脚本…
一 什么是触发器 1.1  触发器的概念   触发器(trigger)是SQL server来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行是由事件来触发,当对一个表进行操作( insert,delete, update)时就会激活它执行.触发器经常用于加强数据的完整性约束和业务规则等. 触发器和存储过程的区别:   触发器与存储过程的区别是运行方式的不同,触发器在执行T-SQL语句时自动触发执行,而存储过程需要用户,应用程序或者触发器来显式地调用并执行. 1.2  触发器…
SQLSERVER中的元数据锁 网上对于元数据锁的资料真的非常少 元数据锁一般会出现在DDL语句里 下面列出数据库引擎可以锁定的资源 资源 说明 RID 用于锁定堆(heap)中的某一行 KEY 用于锁定索引上的某一行,或者某个索引键 PAGE 锁定数据库中的一个8KB页,例如数据页或索引页 EXTENT 一组连续的8页(区) HOBT 锁定整个堆或B树的锁 TABLE 锁定包括所有数据和索引的整个表 FILE 数据库文件 APPLICATION 应用程序专用的资源 METADATA    元数…
SQLSERVER中统计所有表的记录数 利用系统索引表sysindexes中索引ID indid<1的行中的rows列存有该表的行数这一特点.    方法是利用隐藏未公开的系统存储过程sp_MSforeachtable ), RowCnt INT) EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?' SELECT TableName, RowCnt FROM #temp ORDER BY RowCnt…
//附加数据库 sp_attach_db 当使用 sp_attach_db 系统存储过程附加数据库时. sp_attach_db:将数据库附加到服务器. 语法 sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ] 参数 [@dbname =] 'dbname' 要附加到服务器的数据库的名称.该名称必须是唯一的.dbname 的数据类型为 sysname,默认值为 NULL. [@filenam…
在sqlserver(应该说在目前所有数据库产品)中创建一个资源如表,视图,存储过程中都要判断与创建的资源是否已经存在  在sqlserver中一般可通过查询sys.objects系统表来得知结果,不过可以有更方便的方法  如下:      if   object_id('tb_table') is not null           print 'exist'      else          print'not exist'  如上,可用object_id()来快速达到相同的目的,tb…
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. 项目背景 这是给某数据中心做的一个项目,项目难度之大令人发指,这个项目真正的让我感觉到了,商场如战场,而我只是其中的一个小兵,太多的战术,太多的高层之间的较量,太多的内幕了.具体这个项目的情况,我有空再写相关的博文出来. 这个项目是要求做环境监控,我们暂且把受监控的设备称为采集设备,采集设备的属性…
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二:调用模板存储过程创建存储过程: 总结 扩展阅读 参考文献(References) 二.背景(Contexts) 在我的数据库服务器上,同一个实例下面挂载着许多相同结构的数据库,他们为不同公司提供着服务,在许多时候我需要同时创建.修改.删除一些对象,存储过程就是其中一个,但是想要批量创建存储,这有些特…
已经有快2个月没有更新博客了,实在是因为最近发生了太多的事情,辞了工作,在湘雅医院待了一个多月,然后又新换了工作...... 在平时的工作中,Sqlserver中许多知识点是经常用到的,但是有时候我们往往忽略了它们,在过去的一年里,一直使用的是Mysql,现在又开始接触Sqlserver了,所以就把一些常用又容易忽视的Sqlserver知识点总结一点,以便备忘之用. 所有的操作都将基于Northwind数据库来进行操作. 注意:当采用附加Northwind数据库的方式进行数据库迁移的时候,可能会…
个人自用导出文本文件命令: bcp [xxDB].[dbo].[xx_tb_name] out d:\temp\xxx.txt -c -t "\t" -T bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数…