t-sql 使用小技巧
需积分: 0 105 浏览量
更新于2008-11-26
收藏 951KB DOC 举报
1.按姓氏笔画排序
2.数据库加密
3.取回表中字段
4.查看硬盘分区
5.杀掉所有的事件探察器进程
6.记录搜索
7.修改数据库的名称
8.获取某一个表的所有字段
9.查看当前数据库中所有存储过程
10. 树型的实现
....
在SQL语言中,T-SQL(Transact-SQL)是微软SQL Server数据库管理系统所使用的扩展。以下是一些T-SQL的实用技巧:
1. **按姓氏笔画排序**: 在SQL Server中,你可以通过设置排序规则(collation)来按照姓氏笔画排序。例如:
```sql
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
```
这里`Chinese_PRC_Stroke_ci_as`是中文排序规则,`ci`代表不区分大小写,`as`表示对重音不敏感。
2. **数据库加密**: SQL Server提供了`ENCRYPTBYKEY`和`DECRYPTBYKEY`函数用于加密和解密数据。不过在描述中提到的`encrypt`和`pwdencrypt`是早期版本的函数,现在已经不太推荐使用。现在更安全的方法是使用透明数据加密(TDE)或列级加密。
3. **取回表中字段**: 你可以动态生成SQL语句来获取表的所有字段。下面的例子展示了如何做到这一点:
```sql
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. **比较两个表是否相等**: 使用`checksum_agg(binary_checksum(*))`可以计算整个表的校验和,从而判断两个表是否完全相同。
6. **杀掉事件探察器进程**: 当需要关闭所有SQL Profiler或SQL事件探查器进程时,可以使用如下语句:
```sql
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. **记录搜索**: 获取特定范围的记录可以通过`TOP`关键字配合`ORDER BY`实现。例如,获取前N条记录,N到M条记录,以及从N到最后的记录。
8. **修改数据库名称**: 使用系统存储过程`sp_renamedb`可以轻松地更改数据库名称,如`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. **查看与表相关的对象**: 通过`sysobjects`和`syscomments`可以查找包含特定表名的视图、存储过程和函数。
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`可以显示非默认用户(非sa)创建的数据库。
14. **查询表的字段和数据类型**: 使用`information_schema.columns`视图可以获取表的字段名和数据类型,如`SELECT column_name, data_type FROM information_schema.columns WHERE table_name = '表名'`。
这些技巧涵盖了数据检索、处理、安全性和管理等多个方面,对日常的SQL Server数据库操作非常有用。在实际工作中,熟练掌握这些技巧可以提高工作效率并确保数据安全。
![avatar](https://profile-avatar.csdnimg.cn/457a7fe78c0c403c81dbf7eea99c9939_h5423804.jpg!1)
h5423804
- 粉丝: 3
- 资源: 40
最新资源
- ChatGPT-GPTCMS-AI人工智能资源
- 基于多主体主从博弈的区域综合能源系统低碳经济优化调度策略:考虑奖惩阶梯型碳机制与双重激励的综合需求响应方法研究,基于多主体主从博弈的区域综合能源系统低碳经济优化调度策略-考虑奖惩阶梯型碳机制与双重激
- 基于Python的剪切板监听图片识别白板设计源码
- minio-rsc-Rust资源
- 多尺度卷积神经网络与注意力机制融合的滚动轴承故障诊断技术研究与应用,基于多尺度卷积神经网络与注意力机制的滚动轴承故障诊断方法研究与实践,基于多尺度卷积神经网络的滚动轴承故障诊断 针对
- 基于C#和SQLServer的鲜花管理系统设计源码
- 三相共直流母线式光储VSG虚拟同步机并网逆变器模型仿真:快速离散化分析与700V直流母线电压下的性能研究,三相共直流母线式光储VSG虚拟同步机构网型逆变器模型仿真:高效功率追踪与双闭环控制,三相共直流
- 基于C++的Coin模拟登陆数据库操作设计源码
- 基于Java语言的DazzlingHare项目设计源码
- 基于Java语言的ztosdk设计源码下载与优化
- 基于Vue和TypeScript的Web前端合作医疗系统设计源码
- 基于TCP/IP协议栈的纯RTL语言实现:跨平台IP通信工具,集成TCP服务器、客户端及ICMP Ping功能,TCP/IP协议栈的纯RTL语言实现:跨平台支持TCP服务器、客户端、ICMP及Ping
- 风力发电项目报告.zip
- LingLongGUI-硬件开发资源
- COMSOL模拟:多类型锂离子电池热管理模型与电化学热耦合效应研究,COMSOL中多型锂离子电池热管理模型的研发:包括电化学热耦合模型及不同形态电池的相变换热与热失控保护模型,comsol 锂离子电池
- 圣钰SAAS后台管理系统-当前系统只维护不升级.yubb-saas-pro商业版开发中-移动应用开发资源