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


当前回答

以下是一些我认为有用但很多人似乎不知道的功能:

sp_tables

返回可以为的对象列表 在当前环境下查询。 这意味着任何对象都可以出现 在FROM子句中,同义词除外 对象。

Link

sp_stored_procedures

中存储过程的列表 当前环境。

Link

其他回答

使用EncryptByKey进行简单加密

找出最流行的查询

与系统。Dm_exec_query_stats,您可以通过一个查询计算出许多查询分析的组合。

链接 用命令

select * from sys.dm_exec_query_stats 
order by execution_count desc

强制参数化

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

Link

SQLCMD

如果您有脚本需要反复运行,但必须更改轻微的细节,那么在sqlcmd模式下运行ssms非常棒。sqlcmd命令行也非常漂亮。

我最喜欢的特点是:

你需要设置变量。适当的变量,不需要跳过sp_exec圈 您可以一个接一个地运行多个脚本 这些脚本可以引用“外部”脚本中的变量

Red Gate的Simpletalk没有再滔滔滔滔地说什么,而是对sqlcmd - sqlcmd工作台做了一个很棒的总结。Donabel Santos也有一些很棒的SQLCMD示例。

通过关键字查找过程

哪些过程包含特定的文本(表名、列名、变量名、TODO等)?

SELECT OBJECT_NAME(ID) FROM SysComments 
WHERE Text LIKE '%SearchString%' 
AND OBJECTPROPERTY(id, 'IsProcedure') = 1