T-SQL查询技巧语句

4 篇文章 0 订阅
2 篇文章 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
从publish 表中取出第 n 条到第 m 条的记录:
SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish))
随机提取N条记录的SQL语句
SQLServer: Select top 10 * FROM 表 ORDER BY Newid()
Access: Select top 10 * FROM 表 ORDER BY Rnd(id)
Select top 10 * FROM 表 ORDER BY Rnd(len(UserName))
MySql: Select * FROM 表 ORDER BY rand() Limit 10
* Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成比如用姓名字段(UserName)
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
15:sql sever中用sql命令查看表结构:
可以使用内置的存储过程sp_MShelpcolumns。
如查询表B_blog的结构:
sp_MShelpcolumns 'dbo.blog'
16:将数据库school1的表Student备份到数据库Student中。但回丢失主键!
use school1
go
select * into school.dbo.Student from Student
17:将文本数据到入表:
BULK INSERT dbo.Spk1
FROM 'G:\Spk1.txt' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
Spk1.txt
1,DSJ-120,电视机,1865.00,15
2,DSJ-180,电视机,2073.00,10
3,XYJ-13,洗衣机,486.00,20
4,XYJ-20,洗衣机,873.00,12
5,DBX-134,电冰箱,1456.00,8
6,DSJ-340,电视机,3726.00,5
7,WBL-6,微波炉,640.00,10
8,KTQ-12,空调器,2800.00,12
18:最近一个月的信息:
SELECT * FROM R_news WHERE (DATEDIFF(dd, N_Time, GETDATE()) < 30)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值