为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server的隐藏功能

/ 猿问

SQL Server的隐藏功能

倚天杖 2019-12-06 15:55:47

SQL Server的一些隐藏功能是什么?

例如,未记录的系统存储过程,做一些有用的技巧却没有足够记录的技巧?


答案

感谢大家提供的所有出色答案!

存储过程

  • sp_msforeachtable:使用“?”运行命令 替换为每个表名(v6.5及更高版本)

  • sp_msforeachdb:使用“?”运行命令 替换为每个数据库名称(v7及更高版本)

  • sp_who2:与sp_who一样,但包含更多有关故障排除块的信息(v7及更高版本)

  • sp_helptext:如果需要存储过程的代码,请查看&UDF

  • sp_tables:返回范围内数据库的所有表和视图的列表。

  • sp_stored_procedures:返回所有存储过程的列表

  • xp_sscanf:将数据从字符串读取到每个格式参数指定的参数位置。

  • xp_fixeddrives::查找具有最大可用空间的固定驱动器

  • sp_help:如果您想了解表的结构,索引和约束。以及视图和UDF。快捷键是Alt + F1

片段

  • 以随机顺序返回行

  • 上次修改日期的所有数据库用户对象

  • 仅返回日期

  • 查找哪个日期属于当前星期内的记录。

  • 查找上周发生日期的记录。

  • 返回当前星期开始的日期。

  • 返回上周开始的日期。

  • 查看已部署到服务器的过程的文本

  • 删除所有与数据库的连接

  • 表校验和

  • 行校验和

  • 将所有过程拖放到数据库中

  • 还原后正确重新映射登录ID

  • 从INSERT语句调用存储过程

  • 按关键字查找程序

  • 将所有过程拖放到数据库中

  • 以编程方式查询事务日志中的数据库。

功能

  • HashBytes()

  • 加密密钥

  • PIVOT命令

杂项

  • 连接字符串附加

  • TableDiff.exe

  • 登录事件的触发器(Service Pack 2中的新增功能)

  • 通过持久计算列(pcc)提高性能。

  • sys.database_principles中的DEFAULT_SCHEMA设置

  • 强制参数化

  • 十进制存储格式

  • 在几秒钟内找出最受欢迎的查询

  • 可扩展的共享数据库

  • SQL Management Studio中的表/存储过程筛选器功能

  • 跟踪标志

  • GO重复批处理后的编号

  • 使用架构的安全性

  • 使用内置的加密功能,视图和带有触发器的基表进行加密


查看完整描述

3 回答

?
ABOUTYOU

在Management Studio中,您可以在GO批处理结束标记后放置一个数字,以使批处理重复该次数:


PRINT 'X'

GO 10

将打印“ X”十次。在进行重复性操作时,这可以避免繁琐的复制/粘贴操作。


查看完整回答
反对 回复 2019-12-06
?
白板的微信

许多SQL Server开发人员似乎仍然不了解DELETE,INSERT和UPDATE语句上的OUTPUT子句(SQL Server 2005及更高版本)。


知道哪些行已被INSERT,UPDATE或DELETEd使用非常有用,并且OUTPUT子句允许非常轻松地执行此操作-它允许访问称为inserted和的“虚拟”表deleted(如触发器):


DELETE FROM (table)

OUTPUT deleted.ID, deleted.Description

WHERE (condition)

如果要将值插入到具有INT IDENTITY主键字段的表中,并带有OUTPUT子句,则可以立即获取插入的新ID:


INSERT INTO MyTable(Field1, Field2)

OUTPUT inserted.ID

VALUES (Value1, Value2)

而且,如果您要进行更新,那么知道更改的内容将非常有用-在这种情况下,它inserted表示新值(在UPDATE之后),而deleted在UPDATE之前是指旧值:


UPDATE (table)

SET field1 = value1, field2 = value2

OUTPUT inserted.ID, deleted.field1, inserted.field1

WHERE (condition)

如果将返回很多信息,则OUTPUT的输出也可以重定向到临时表或表变量(OUTPUT INTO @myInfoTable)。


非常有用-鲜为人知!


查看完整回答
反对 回复 2019-12-06
?
眼眸繁星

连接字符串附加功能:

MultipleActiveResultSets = true;

这使ADO.Net 2.0及更高版本可以在单个数据库连接上读取多个仅转发的只读结果集,如果您要进行大量读取,则可以提高性能。即使您混合使用查询类型,也可以将其打开。

应用程序名称= MyProgramName

现在,当您想通过查询sysprocesses表查看活动连接的列表时,程序的名称将显示在program_name列中,而不是“ .Net SqlClient数据提供程序”


查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信