SQL语句大全
Posted on 2008-06-17 16:41 张天利 阅读(165) 评论(0) 编辑 收藏 网摘 所属分类: 数据库
1.按姓氏笔画排序:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密:
select encrypt('原始密码') select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 3.取回表中字段:
declare @list varchar(1000),@sql nvarchar(1000)
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
set @sql='select '+right(@list,len(@list)-1)+' from 表A' exec (@sql) 4.查看硬盘分区:
EXEC master..xp_fixeddrives 5.比较A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A) =
(select checksum_agg(binary_checksum(*)) from B) print '相等' else
print '不相等'
6.杀掉所有的事件探察器进程:
DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid)
FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL 事件探查器') EXEC sp_msforeach_worker '?' 7.记录搜索: 开头到N条记录
Select Top N * From 表 ------------------------------- N到M条记录(要有主索引ID)
Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
---------------------------------- N到结尾记录
Select Top N * From 表 Order by ID Desc 8.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name' 9:获取当前数据库中的所有用户表
select Name from sysobjects where xtype='u' and status>=0 10:获取某一个表的所有字段
select name from syscolumns where id=object_id('表名') 11:查看与某一个表相关的视图、存储过程、函数
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
12:查看当前数据库中所有存储过程
select name as 存储过程名称 from sysobjects where xtype='P' 13:查询用户创建的所有数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
14:查询某一个表的字段和数据类型
select column_name,data_type from information_schema.columns where table_name = '表名' [n].[标题]:
Select * From TableName Order By CustomerName [n].[标题]:
Select * From TableName Order By CustomerName
------------------------------
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%'