SQLSERVER常用小技巧 [继续整理ing]

本文介绍了一系列实用的SQL技巧,包括解决事务锁定问题、查询表结构、复制表结构及数据、随机抽取数据、删除重复记录以及处理过长字符串显示等,为数据库操作提供了高效解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--<1>在开启事务时,表被锁住,如果想查询资料,会始终运行状态,可以加NOLOCK关键字解决
select * from 表名 with(nolock)

 

--<2> 查看表的结构
select * from syscolumns Where ID=OBJECT_ID('表名')

 

--例子:2个表对比(用正式数据库和测试数据库对比,哪个少列一目了然.)
use 正式数据库
select * from syscolumns Where ID=OBJECT_ID('表名')

use 测试数据库

select * from syscolumns Where ID=OBJECT_ID('表名')

 

--<3> 复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a

--拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;

--说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in '"&Server.MapPath(".")&"/data.mdb" &"' where..

 

--<4> 随机取出10条数据
select top 10 * from tablename order by newid()

--随机选择记录
select newid()

--<5>删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

 

--<6> 用...代替过长的字符串显示
SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值