【IT168 技术文档】SQL Server系统存储过程数量众多,不下数百个,本文只是根据自身使用的经验,对一些常用的存储过程进行讲解。我将这些存储过程根据功能进行了一定的分类,对重要的存储过程的功能、性能和特点等进行说明,并且结合实例(SQL脚本)进行讲解,文中少量示例脚本摘自MSDN。
本文旨在对SQL Server的存储过程进行由浅入深的讲解,以便对不同水平的用户提供帮助。对于SQL Server系统存储过程尚不甚了解的用户,通过文章的介绍,能够对SQL Server的存储能够为我们做什么有一个大致的了解,以便日后遇到问题时候能够寻求到合适的解决方案;而对于系统存储过程有一定了解的用户,本文将通过大量实例,让用户能够很快的理解以及掌握这些存储过程的用法。
本文的结构首先将若干功能分类列出,然后在各功能中对相关的存储过程进行讲解,重要的存储过程进行详细阐述并进行举例示范。
注意:这些系统存储过过程,未经注明的都是存放于Master数据库,在SQL2000中,其Owner是“dbo”, 而在SQL2005中,owner改为了“sys”, 并且在用户数据库中也可以直接调用,但是SQL Server 2005依然支持使用Master.dbo. [procedureName]或者Master.. [procedureName]的方式来调用。
1. 重命名数据库对象
我们知道,一般的ALTER语句并不支持对目标或者子对象进行更名,当然ALTER DATABASE除外,ALTER DATABASE支持改名,如下语句所示。
ALTER DATABASE oldDB Modify Name=newDB
用户表,行列,存储过程等对象只能通过先Drop后重建的方法来实现改名,并且还可能涉及到要复制数据的问题。但是通过使用sp_rename,我们可以对所有的数据库对象都进行重命名。需要注意的是,改名可能会破坏一些相关存储过程或者触发器的完整性,这个时候你就需要手动更新他们了。
重命名对象sp_rename
定义 
示例
下面的脚本演示了重命名一列和一个数据表的过程。
-创建一个测试表
Create table tbl_Test(a int)
--重命名列
sp_rename 'tbl_Test.a', 'b','COLUMN'
--重命名表
sp_rename 'tbl_test', 'tbl_test2','object'