SQL Server 数据库管理常用的SQL和T-SQL语句(转)

  1. 查 看数据 库 的版本
select @@version

2. 查 看数据 库 所在机器操作系 统 参数
exec master..xp_msver

3. 查 看数据 库 启 动 的参数
sp_configure

4. 查 看数据 库 启 动时间
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1

查 看数据 库 服 务 器名和 实 例名
print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
5. 查 看所有数据 库 名称及大小
sp_helpdb

重命名数据 库 用的 SQL
sp_renamedb 'old_dbname', 'new_dbname'

6. 查 看所有数据 库 用 户 登 录 信息
sp_helplogins

查 看所有数据 库 用 户 所属的角色信息
sp_helpsrvrolemember

修 复 迁移服 务 器 时 孤立用 户时 , 可以用的 fix_orphan_user 脚本或者 LoneUser 过 程

更改某个数据 对 象的用 户 属主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'

注意 : 更改 对 象名的任一部分都可能破坏脚本和存 储过 程。

把一台服 务 器上的数据 库 用 户 登 录 信息 备 份出来可以用 add_login_to_aserver 脚本

7. 查 看 链 接服 务 器
sp_helplinkedsrvlogin

查 看 远 端数据 库 用 户 登 录 信息
sp_helpremotelogin

8. 查 看某数据 库 下某个数据 对 象的大小
sp_spaceused @objname

还 可以用 sp_toptables 过 程看最大的 N( 默 认为 50) 个表

查 看某数据 库 下某个数据 对 象的索引信息
sp_helpindex @objname

还 可以用 SP_NChelpindex 过 程 查 看更 详细 的索引情况
SP_NChelpindex @objname

clustered 索引是把 记录 按物理 顺 序排列的,索引占的空 间 比 较 少。
对键值 DML 操作十分 频 繁的表我建 议 用非 clustered 索引和 约 束, fillfactor 参数都用默 认值 。
查 看某数据 库 下某个数据 对 象的的 约 束信息
sp_helpconstraint @objname

9. 查 看数据 库 里所有的存 储过 程和函数
use @database_name
sp_stored_procedures
查 看存 储过 程和函数的源代 码
sp_helptext '@procedure_name'

查 看包含某个字符串 @str 的数据 对 象名称
select distinct object_name(id) from syscomments where text like '%@str%'

创 建加密的存 储过 程或函数在 AS 前面加 WITH ENCRYPTION 参数

解密加密 过 的存 储过 程和函数可以用 sp_decrypt 过 程

10. 查 看数据 库 里用 户 和 进 程的信息
sp_who
查 看 SQL Server 数据 库 里的活 动 用 户 和 进 程的信息
sp_who 'active'
查 看 SQL Server 数据 库 里的 锁 的情况
sp_lock

进 程号 1--50 是 SQL Server 系 统 内部用的 , 进 程号大于 50 的才是用 户 的 连 接 进 程 .
spid 是 进 程 编 号 ,dbid 是数据 库编 号 ,objid 是数据 对 象 编 号
查 看 进 程正在 执 行的 SQL 语 句
dbcc inputbuffer ()

推荐大家用 经过 改 进 后的 sp_who3 过 程可以直接看到 进 程运行的 SQL 语 句
sp_who3

检查 死 锁 用 sp_who_lock 过 程
sp_who_lock

11. 收 缩 数据 库 日志文件的方法
收 缩简单 恢 复 模式数据 库 日志,收 缩 后 @database_name_log 的大小 单 位 为 M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12. 分析 SQL Server SQL 语 句的方法 :

set statistics time {on | off}
set statistics io {on | off}
图 形方式 显 示 查询执 行 计 划

在 查询 分析器 -> 查询 -> 显 示估 计 的 评 估 计 划 (D)-Ctrl-L 或者点 击 工具 栏 里的 图 形

文本方式 显 示 查询执 行 计 划
set showplan_all {on | off}

set showplan_text { on | off }
set statistics profile { on | off }

13. 出 现 不一致 错误时 , NT 事件 查 看器里出 3624 号 错误 ,修 复 数据 库 的方法

先注 释 掉 应 用程序里引用的出 现 不一致性 错误 的表,然后在 备 份或其它机器上先恢 复 然后做修 复 操作

alter database [@error_database_name] set single_user

修 复 出 现 不一致 错误 的表

dbcc checktable('@error_table_name',repair_allow_data_loss)

或者可惜 选择 修 复 出 现 不一致 错误 的小型数据 库 名

dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有 3 个参数 :
repair_allow_data_loss 包括 对 行和 页进 行分配和取消分配以改正分配 错误 、 结 构行或 页 的 错误 ,
以及 删 除已 损 坏的文本 对 象, 这 些修 复 可能会 导 致一些数据 丢 失。
修 复 操作可以在用 户 事 务 下完成以允 许 用 户 回 滚 所做的更改。
如果回 滚 修 复 , 则 数据 库 仍会含有 错误 , 应该 从 备 份 进 行恢 复 。
如果由于所提供修 复 等 级 的 缘 故 遗 漏某个 错误 的修 复 , 则 将 遗 漏任何取决于 该 修 复 的修 复 。
修 复 完成后, 请备 份数据 库 。
repair_fast 进 行小的、不耗 时 的修 复 操作,如修 复 非聚集索引中的附加 键 。
这 些修 复 可以很快完成,并且不会有 丢 失数据的危 险 。
repair_rebuild 执 行由 repair_fast 完成的所有修 复 ,包括需要 较长时间 的修 复 (如重建索引)。
执 行 这 些修 复时 不会有 丢 失数据的危 险 。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值