一些常用的SQL语句, 连接服务器 if isnull(@userid,'')='' --如果是 Nt验证方式 begin exec @err=sp_oasetproperty @srvid,'loginsecure',1 if @err<>0 goto lberr exec @err=sp_oamethod @srvid,'connect',null,@servername end else exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password if @err<>0 goto lberr 在IT领域,尤其是在数据库管理中,SQL(Structured Query Language)是不可或缺的语言,用于查询、更新和操作数据库。这里我们将深入探讨一些在MS SQL Server中常用的SQL技巧,这些技巧可以帮助数据库管理员和开发人员更加高效地工作。 1. **连接服务器**: 在MS SQL Server中,可以通过`sp_oamethod`和`sp_oasetproperty`这两个系统存储过程来连接服务器。如果`@userid`为空(Nt验证方式),则设置`loginsecure`属性为1允许不安全的连接。否则,使用`@userid`和`@password`进行身份验证。 2. **日期格式转换**: 使用`CONVERT()`函数可以将日期转换为不同的格式。例如,`CONVERT(varchar(10), GETDATE(), 120)`会将当前日期转换为“YYYY-MM-DD”的格式,而`CONVERT(varchar(10), GETDATE(), 111)`则转换为“YYYY/MM/DD”。 3. **按姓氏笔画排序**: 在中文环境下,可以使用`COLLATE`关键字配合特定的排序规则进行排序,例如`ORDER BY CustomerName COLLATE Chinese_PRC_Stroke_ci_as`按照汉字的笔画进行排序。 4. **数据库加密**: MS SQL Server提供了`ENCRYPT()`、`PWDENCRYPT()`和`PWDCOMPARE()`函数来进行密码加密和验证。`ENCRYPT()`和`PWDENCRYPT()`可以对文本进行加密,`PWDCOMPARE()`则用于比较加密后的密码是否一致。 5. **取回表中字段**: 使用动态SQL,通过遍历`sysobjects`和`syscolumns`系统表,可以构建并执行一个SQL语句,获取指定表的所有字段。 6. **查看硬盘分区**: `EXEC master..xp_fixeddrives`是一个扩展存储过程,可以显示服务器上的硬盘分区信息。 7. **比较表内容**: 使用`CHECKSUM_AGG(BINARY_CHECKSUM(*))`可以计算表中所有行的校验和,从而比较两个表是否内容相等。 8. **杀掉SQL事件探察器进程**: 当需要清理运行中的SQL Profiler或SQL事件探查器时,可以通过创建全局游标并执行`sp_msforeach_worker`来终止指定的进程。 9. **选择特定范围的记录**: 可以使用`TOP N`配合`ORDER BY`来选取数据表中特定位置的记录,如开头的N条记录、N到M条记录或从N开始到结尾的记录。 10. **修改数据库名称**: `sp_renamedb 'old_name', 'new_name'`可以实现数据库名称的更改。 11. **获取用户表、字段信息**: `sysobjects`和`syscolumns`系统视图可用于获取数据库中用户表的名称和表中字段的信息。 12. **查看与表相关的对象**: 通过连接`sysobjects`和`syscomments`,可以查找包含特定表名的视图、存储过程或函数。 13. **查询用户创建的数据库**: 使用`sysdatabases`系统视图可以列出非默认(非sa创建)的数据库。 14. **查询表的字段和数据类型**: `information_schema.columns`视图提供了关于数据库中所有表的列名和数据类型的详细信息。 这些SQL技巧不仅提高了查询效率,还能帮助优化数据库管理和开发流程。在实际工作中,熟练掌握这些技巧可以大大提升工作效率,使SQL Server的使用更为得心应手。
- 粉丝: 7
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助