SQL技巧:删除重复记录与事务日志收缩
104 浏览量
更新于2024-08-30
收藏 58KB PDF 举报
"这篇文档提供了一些实用的SQL语句,主要涉及如何删除数据库表中的重复记录以及如何收缩事务日志。此外,还分享了几个日期时间相关的转换函数和CASE语句的使用示例。"
在SQL操作中,处理重复记录是一项常见的任务。文档中给出的方法是通过创建一个临时表来保留不重复的记录。首先,使用`SELECT DISTINCT * INTO #table_name FROM table_name`语句将原始表`table_name`中的所有不重复行插入到名为`#table_name`的临时表中。接着,删除原始表的所有记录`DELETE FROM table_name`,然后将临时表中的不重复数据重新写入到`table_name`中,最后删除临时表`DROP TABLE #table_name`。这个过程确保了`table_name`中只包含唯一记录。
关于“select into”选项,这是SQL Server中的一项特性,允许在创建新表时直接从查询结果中选择数据。默认情况下,这个选项可能是关闭的。要启用它,可以在数据库属性对话框中设置,或者在查询分析器中执行`EXEC sp_dboption 'db_name', 'select into', 'true'`命令,其中`db_name`应替换为你的数据库名。
另外,文档还提到了收缩事务日志的步骤。事务日志用于跟踪数据库的所有更改,有时可能需要对其进行收缩以节省存储空间。可以通过执行以下两条备份语句和一个DBCC命令来实现:
1. `BACKUP LOG register WITH NO_LOG`:这是一次逻辑备份,但不保留日志,这样可以释放日志空间但不删除日志。
2. `BACKUP LOG register WITH TRUNCATE_ONLY`:此命令会清除事务日志,但不会备份,仅在日志文件已满时使用。
3. `DBCC SHRINKDATABASE (register)`:这个命令将收缩指定数据库`register`的大小,包括其日志文件。
此外,文档还分享了一些SQL日期时间函数的使用例子,如:
- 获取当前时间(时/分/秒):`SELECT CONVERT(varchar(10), GETDATE(), 8)`
- 获取当前年月日:`SELECT CONVERT(varchar(10), GETDATE(), 120)`
- 获取当前年月:`SELECT CONVERT(varchar(7), GETDATE(), 120)`
- 获取当前年份和月份:`SELECT CONVERT(varchar(10), YEAR(GETDATE())) + '-' + CONVERT(varchar(10), MONTH(GETDATE()))`
- 将字符串转换为整数:`SELECT CAST(b AS integer) AS bb FROM table1 WHERE b = '11'`
- 使用CASE语句进行条件转换:`SELECT a, CASE b WHEN '11' THEN '细细' WHEN '22' THEN '呵呵' ELSE '哈哈' END AS 转换, c FROM table1`
- 另一种CASE语句的写法:`SELECT a, b, CASE WHEN c = '111' THEN '细细' WHEN c = '222' THEN '呵呵' ELSE '哈哈' END AS 转换1 FROM table1`
这些函数和语句在日常数据库管理或数据处理中非常有用,可以帮助你更有效地操作和查询数据。
504 浏览量
2021-01-21 上传
2012-03-24 上传
点击了解资源详情
2010-12-04 上传
2022-04-11 上传
176 浏览量
点击了解资源详情
点击了解资源详情
weixin_38657848
- 粉丝: 5
- 资源: 906
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践