【问题标题】:Useful system stored procedures in SQL ServerSQL Server 中有用的系统存储过程
【发布时间】:2009-02-23 17:09:22
【问题描述】:

我最近发现我可以使用sp_help 来获取表定义,并且从那时起我就迷上了它。在我发现之前,我不得不在 SQL Management Studio 中打开对象资源管理器,手动搜索表名,右键单击表并选择设计。那是很大的努力!

你们都使用了哪些其他系统存储过程,你不能没有?

【问题讨论】:

  • 应该是社区维基

标签: sql sql-server sql-server-2005 stored-procedures


【解决方案1】:

Alt + F1 对于sp_help 来说是一个很好的shortcut 键。

sp_helptext 是获取存储过程文本的另一个好工具。

【讨论】:

  • 很好.. 我可以在类似于 sp_help myTable 的特定表上使用 Alt + F1 吗?
【解决方案2】:

所有这些无证的

xp_getnetname 

xp_fileexist 

xp_dirtree 

xp_subdirs 

sp_who2

xp_getfiledetails 

xp_fixeddrives 

Sp_tempdbspace 

xp_enumdsn 

xp_enumerrorlogs

sp_MSforeachtable 

sp_MSforeachDB 

请看这里:Undocumented stored procedures

现在从 SQl Server 2005 开始,所有的动态管理视图都像 sys.dm_db_index_usage_stats

【讨论】:

    【解决方案3】:

    sp_helpindex [table] - 显示索引信息(与 sp_help 相同的信息)

    sp_helpconstraint [table] - 显示主键/外键/默认值和其他约束 *

    sp_depends [obj] - 显示对象的依赖关系,例如:

    sp_depends [table] - 显示哪些存储的过程、视图、触发器、UDF 会影响此表

    sp_depends [sproc] - 显示此存储过程影响/使用的表等

    【讨论】:

      【解决方案4】:

      您可以使用sp_spaceused 来确定表或整个数据库的大小。如果您传递表名,它会返回用于该表的空间,当不带参数调用时,它会给出数据库的空间。

      【讨论】:

      • 多么令人困惑的名字,顺便说一句!可以想,这是关于space 字符被使用了多少次。 :)
      【解决方案5】:

      sp_who/sp_who2 - 让您知道谁在服务器上做什么。

      【讨论】:

        【解决方案6】:
        【解决方案7】:
        sp_catalogs 
        sp_column_privileges
        sp_column_privileges_ex
        sp_columns
        sp_columns_ex
        sp_databases
        sp_cursor
        sp_cursorclose
        sp_cursorexecute
        sp_cursorfetch
        sp_cursoroption
        sp_cursoropen
        sp_cursorprepare
        sp_cursorprepexec
        sp_cursorunprepare
        sp_execute
        sp_datatype_info
        sp_fkeys
        sp_foreignkeys
        sp_indexes
        sp_pkeys
        sp_primarykeys
        sp_prepare
        sp_prepexec
        sp_prepexecrpc
        sp_unprepare
        sp_server_info
        sp_special_columns
        sp_sproc_columns
        sp_statistics
        sp_table_privileges
        sp_table_privileges_ex
        sp_tables
        sp_tables_ex 
        

        也检查此链接

        http://msdn.microsoft.com/en-us/library/ms176007.aspx

        【讨论】:

          【解决方案8】:

          Select * From sysobjects where xtype='U' order by Name

          提供数据库中所有用户定义表的列表。

          【讨论】:

            【解决方案9】:

            sp_rename

            用于重命名数据库对象(表、列、索引等)

            【讨论】:

              【解决方案10】:

              master.dbo.xp_cmdshell

              我无法列出我没有 RDP 访问框但拥有足够权限的 SQL 登录以在其上运行 shell 命令的次数。

              【讨论】:

                【解决方案11】:

                在查询编辑器中突出显示任何 proc 或其他系统对象名称,然后按 shift-f1 以获取该词的帮助。

                【讨论】:

                  【解决方案12】:

                  我知道这是一个相当古老的话题,但它在搜索引擎中的排名仍然很高。

                  这些是我最喜欢的存储过程,希望你也觉得它们有用。几乎所有这些都可以通过一个简单的命令来实现,但是这些存储过程会执行一些有用的检查和验证。

                  [sys].[sp_revokelogin]
                  [sys].[sp_password]
                  [sys].[sp_MSchangeobjectowner]
                  [sys].[sp_addlogin]
                  [sys].[sp_addrole]
                  [sys].[sp_adduser]
                  [sys].[sp_denylogin]
                  [sys].[sp_droplogin]
                  [sys].[sp_droprole]
                  [sys].[sp_droprolemember]
                  [sys].[sp_dropuser]
                  

                  【讨论】:

                    猜你喜欢
                    • 2011-03-12
                    • 2013-06-09
                    • 2011-10-15
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多