SQL Server有哪些隐藏特性?

例如,没有文档的系统存储过程,做一些非常有用但没有足够文档的事情的技巧?


答案

感谢大家的精彩回答!

存储过程

sp_msforeachtable: Runs a command with '?' replaced with each table name (v6.5 and up) sp_msforeachdb: Runs a command with '?' replaced with each database name (v7 and up) sp_who2: just like sp_who, but with a lot more info for troubleshooting blocks (v7 and up) sp_helptext: If you want the code of a stored procedure, view & UDF sp_tables: return a list of all tables and views of database in scope. sp_stored_procedures: return a list of all stored procedures xp_sscanf: Reads data from the string into the argument locations specified by each format argument. xp_fixeddrives:: Find the fixed drive with largest free space sp_help: If you want to know the table structure, indexes and constraints of a table. Also views and UDFs. Shortcut is Alt+F1

片段

Returning rows in random order All database User Objects by Last Modified Date Return Date Only Find records which date falls somewhere inside the current week. Find records which date occurred last week. Returns the date for the beginning of the current week. Returns the date for the beginning of last week. See the text of a procedure that has been deployed to a server Drop all connections to the database Table Checksum Row Checksum Drop all the procedures in a database Re-map the login Ids correctly after restore Call Stored Procedures from an INSERT statement Find Procedures By Keyword Drop all the procedures in a database Query the transaction log for a database programmatically.

功能

哈希字节() EncryptByKey 枢轴命令

Misc

Connection String extras TableDiff.exe Triggers for Logon Events (New in Service Pack 2) Boosting performance with persisted-computed-columns (pcc). DEFAULT_SCHEMA setting in sys.database_principles Forced Parameterization Vardecimal Storage Format Figuring out the most popular queries in seconds Scalable Shared Databases Table/Stored Procedure Filter feature in SQL Management Studio Trace flags Number after a GO repeats the batch Security using schemas Encryption using built in encryption functions, views and base tables with triggers


当前回答

强制参数化

参数化允许SQL Server利用查询计划重用,并避免后续执行类似查询时的编译和优化开销。然而,由于这样或那样的原因,仍然有许多应用程序存在特殊的查询编译开销。对于查询编译次数较多、降低CPU利用率和响应时间对工作负载至关重要的情况,强制参数化可以提供帮助。

Link

其他回答

用于解析存储过程参数:xp_sscanf

将数据从字符串读入每个格式参数指定的参数位置。 下面的示例使用xp_sscanf 从源中提取两个值 属性中的位置 源字符串的格式。

DECLARE @filename varchar (20), @message varchar (20)
EXEC xp_sscanf 'sync -b -fproducts10.tmp -rrandom', 'sync -b -f%s -r%s', 
  @filename OUTPUT, @message OUTPUT
SELECT @filename, @message

这是结果集。

-------------------- -------------------- 
products10.tmp        random

不是无证

行号由Itzik Ben-Gan 提供 http://www.sqlmag.com/article/articleid/97675/sql_server_blog_97675.html

设置xact_abort为on 在事务发生错误时回滚所有内容

所有的sp_都很有帮助,只是在网上浏览书籍

我在管理工作室一直使用的快捷键 F6 -结果和查询之间切换 Alt+X或F5-在查询中运行选中的文本,如果没有选中则运行整个窗口 Alt+T和Alt+D -结果在文本或网格分别

表/存储过程过滤器是一个半隐藏的特性,非常有用…

在“SQL Server Management Studio对象资源管理器”中,右键单击“表或存储过程”文件夹,选择“筛选器”菜单,然后选择“筛选器设置”,并在“名称包含”行中输入部分名称。

同样地,使用Remove Filter再次查看所有表/存储过程。

在恢复数据库用于测试或其他用途时非常有用。正确地重新映射登录ID:

EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-36'

以下是我最喜欢的一些东西:

在sp2 -工具/选项/脚本下增加了脚本选项

使用模式的新安全性—创建两个模式:user_access、admin_access。把你的用户过程放在一个,你的管理过程放在另一个,像这样:user_access。showList, admin_access.deleteUser。将模式上的EXECUTE授权给你的应用用户/角色。不再一直授予EXECUTE。

使用内置加密函数、视图(为了表示而解密)和带触发器的基表(在插入/更新时加密)进行加密。