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


当前回答

好吧,这是我剩下的一些,很遗憾我错过了开始,但继续吧,这里有一些顶级的东西!

查询分析器

Alt+F1对所选文本执行sp_help Alt-D -聚焦到数据库下拉菜单,这样你就可以使用字母光标键选择db。

t - sql

if (object_id("nameofobject") IS NOT NULL) begin <do something> end -最简单的存在性检查 Sp_locks——比sp_who2(这是第一个调用端口)更深入的锁定信息 DBCC inputbuffer(spid) -执行进程的顶部行列表(有点有用,但简单) DBCC outputbuffer(spid) -执行进程输出的顶行列表

通用T-sql技巧

对于大容量的数据,可以自由地使用子查询来处理集合中的数据

例如,获得已婚人士的名单 50岁以上的人可以选择 一群结婚的人 子查询并与一组 同样是50岁以上的人 加入结果-请原谅 的例子

其他回答

可伸缩的共享数据库

通过可伸缩共享数据库,可以在普通机器上挂载相同的物理驱动器,并允许多个SQL Server 2005实例使用同一组数据文件。这种设置不需要为每个SQL Server实例复制存储,并且允许多个SQL Server实例具有额外的处理能力,这些实例具有自己的本地资源,如cpu、内存、tempdb和其他潜在的本地数据库。

Link

SQLCMD

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

我最喜欢的特点是:

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

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

获得垂直格式的列标题列表:

复制网格结果中的列名

工具-选项-查询结果- SQL Server -结果网格 勾选“在复制或保存结果时包含列标题”

此时,您需要建立一个新的连接,然后运行查询

现在,当您从网格复制结果时,您将获得列标题

也 然后将结果复制到excel

只复制col标头

粘贴特殊(不能与复制区域重叠)

蜱虫“转置”

OK

[你可能希望在这里添加一个","并自动填充]

您有一个垂直格式的列的即时列表

找出最流行的查询

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

链接 用命令

select * from sys.dm_exec_query_stats 
order by execution_count desc

表校验和

Select CheckSum_Agg(Binary_CheckSum(*)) From Table With (NOLOCK)

行校验和

Select CheckSum_Agg(Binary_CheckSum(*)) From Table With (NOLOCK) Where Column = Value