位置: 编程技术 - 正文

一些SQLServer存储过程参数及举例(sqlserver存储过程实例详解)

编辑:rootadmin

Microsoft included several hundred stored procedures in the various versions of Microsoft SQL Server and it has documented a good percentage of them. But many stored procedures remain undocumented. Some are used within the Enterprise Manager GUI in SQL and were not intended to be used by other processes. Microsoft has slated some of these stored procedures to be removed (or they have been removed) from future versions of SQL Server. While these stored procedures can be very useful and save you lots of time, they can be changed at any time in their function or they can simply be removed.

The chart below shows that while many of the procedures have been carried through from one version of Microsoft SQL Server to another, new stored procedures have been introduced, and some have been removed from the install package. Most, if not all, of the procedures require the user to be a member of the sysadmin fixed server role in order to execute the procedures. The stored procedures that interact with the file system also require that the user executing the procedure (as well as SQL Server's service account) have access to the file/folder.

Procedure NameSQL SQL SQL sp_executeresultsetX  sp_MSforeachdbXXXsp_MSforeachtableXXXsp_readerrorlogXXXxp_create_subdir XXXp_delete_file XXxp_dirtreeXXXxp_fileexistXXXxp_fixeddrivesXXXxp_getfiledetailsX  xp_getnetnameXXXxp_loginconfigXXXxp_makecabX  xp_msverXXXxp_get_mapi_profilesXXXxp_subdirsXXXxp_test_mapi_profileXXXxp_unpackcabX  

sp_executeresultset

Microsoft removed this handy little procedure called sp_executeresultset from SQL Server in SQL Server . It allows you to generate dynamic SQL code on the fly by using a SELECT query. Then, the resulting SQL commands will be executed against the database. It permits you to create a single piece of code that can, in a single step, find the number of records in every table in your database (as the example shows). This is an undocumented stored procedure and there is no way of knowing why it was removed. But, alas, this handy utility is gone.

exec sp_execresultset 'SELECT ''SELECT '''''' + name + '''''', count(*) FROM '' + namefrom sysobjectswhere xtype = ''U'''

sp_MSforeachdb / sp_MSforeachtable

Two procedures, sp_MSforeachdb and sp_MSforeachtable, are wrappers around a cursor. They allow you to execute T-SQL code against each database on your SQL Server and each table within the current database, respectively. You cannot, however, use an sp_MSforeachtable command within an sp_MSforeachdb command in SQL and prior. The cursor name that was used within those procedures was the same (hCForEach) and would therefore return an error saying that the cursor name was already in use for each execution of the sp_MSforeachtable. In SQL Server , Microsoft resolved this issue. In order to "next" the command, you must tell one of the procedures it will be using a different replacement character other than the default question mark. I change the replacement character in the database command because it's easier.

Print each table name in the current database.

exec sp_MSforeachtable 'print ''?'''

Print each database on the current server.

exec sp_MSforeachdb 'print ''?'''

Print each table on the current server.

exec sp_MSforeachdb 'use [@] exec sp_MSforeachtable ''print''''@.?''''''', '@'

sp_readerrorlog / xp_readerrorlog

The stored procedure sp_readerrorlog actually comes in two forms. Each works the same; one is simply a wrapper for the second. The wrapper stored procedure is sp_readerrorlog and it calls xp_readerrorlog. Both have four input parameters, but only the first two are useful to us. The first parameter establishes the file number that you wish to view. The second is the log to view (1 or null for ERRORLOG, 2 for SQL Agent Log). This allows you to view your error logs quickly and easily instead of having to look at the bloated log viewer that now comes with SQL Server and SQL .

View the current SQL ERRORLOG file.

exec sp_readerrorlog

exec sp_readerrorlog 0, 1

View the Prior SQL Agent Log file.

exec sp_readerrorlog 1, 2

xp_create_subdir

Introduced in SQL Server , the xp_create_subdir stored procedure is very handy because you can use it to create folders on SQL Server's hard drive or on a network share from within T-SQL.

exec xp_create_subdir 'c:MSSQLData'

xp_delete_file

Use the xp_delete_file stored procedure introduced in SQL Server to delete files from SQL Server's hard drive or a network share from within T-SQL.

xp_dirtree

The xp_dirtree procedure allows you to view the folder tree and/or file list beneath a folder. This procedure has several parameters that control how deep the procedure searches and whether it returns files and folders or folders only. The first parameter establishes the folder to look in. (Recommendation: Do not run this procedure against the root of the drive that Windows is installed on because it will take some time to generate the tree and return the data.) The second parameter limits the number of recursive levels that the procedure will dig through. The default is zero or all levels. The third parameter tells the procedure to include files. The default is zero or folders only, a value of 1 includes files in the result set. Specifying a third value not equal to zero will add an additional column to the output called file which is a bit field showing the entry in a folder or file.

Get the full directory tree.

exec xp_dirtree 'd:mssql'

Get the first two levels of the directory tree.

exec xp_dirtree 'd:mssql', 2

Get the first three levels of the directory tree, including files.

exec xp_dirtree 'd:mssql', 3, 1

xp_fileexist

This SQL Server stored procedure, xp_fileexist, is used to determine if a file exists on SQL Server's hard drive or on a network share. It is extremely useful in stored procedures that load data from flat files. It allows you to check and see if the file exists before attempting to blindly load the file. The procedure has two parameters. Use the first parameter to determine if the file or folder you want exists. The second is an output parameter, which when specified, returns a 1 or 0 if the file exists or does not.

Without the parameter.

exec xp_fileexist 'c:importfile.csv'

With the parameter.

DECLARE @file_exists intexec xp_fileexist 'c:importfile.csv', @file_exists OUTPUTSELECT @file_exists

xp_fixeddrives

The procedure xp_fixeddrives is one of the most useful procedures. It presents a list of all drive letters and the amount of free space each drive has. The parameter has a single optional input parameter that can filter the results by drive type. A value of 3 will return all mass storage devices (CD-ROM, DVD, etc.); a value of 4 will return the hard drives; while a value of 2 will return removable media (USB thumb drives, flash drives, etc.).

Return all drives.

exec xp_fixeddrives

Return hard drives only.

exec xp_fixeddrives 2

xp_getfiledetails

The procedure xp_getfiledetails is another extremely useful procedure, which was last available in SQL Server . This procedure returns size, date and attribute information about the file specified, including date and times created, accessed and modified.

exec xp_getfiledetails 'c:filetoload.csv'

xp_getnetname

The procedure xp_getnetname returns the name of the physical machine where Microsoft SQL Server is installed. You can have the machine name returned as a record set or as a variable.

Without the parameter.

exec xp_getnetname

Using the parameter.

DECLARE @machinename sysnameexec xp_getnetname @machinename OUTPUTselect @machinename

xp_loginconfig

This SQL Server stored procedure will tell you some basic authentication information about the user executing it. It tells you the authentication method (Windows versus SQL Login), the default domain of the server, the audit level, as well as some internal separator information.

exec xp_loginconfig

xp_makecab

Back in SQL Server , Microsoft gave us the ability to compress OS files directly from T-SQL without having to shell out to DOS via xp_cmdshell and run third-party software, like pkzip or winzip. That command was xp_makecab. It allows you to specify a list of files you want to compress as well as the cab file you want to put them in. It even lets you select default compression, MSZIP compression (akin to the .zip file format) or no compression. The first parameter gives the path to the cab file in which you want to create or add files to. The second parameter is the compression level. The third parameter applies if you want to use verbose logging. Starting with the fourth parameter and on down are the names of the files you want to compress. In my testing, I was able to pass file names to be compressed to the extended stored procedure, which means that it is a very flexible solution to your data compression requirements.

exec xp_makecab 'c:test.cab', 'mszip', 1, 'c:test.txt' , 'c:test1.txt'

xp_msver

The procedure xp_msver is very useful when looking for system information. It returns a wealth of information about the host operating system -- the SQL version number, language, CPU type, copyright and trademark information, Microsoft Windows version, CPU count and affinity settings, physical memory settings and your product key. This procedure has many input parameters that allow you to filter down the records that are returned. Each parameter is a sysname data type, which accepts the name of one of the records. If any parameters are specified, only the rows specified as a parameter are returned.

No filter specified.

exec xp_msver

Return only Platform and Comments records.

exec xp_msver 'Platform', 'Comments'

xp_get_mapi_profiles

The xp_get_mapi_profiles procedure assists you in configuring SQL Mail. When executed, it will call to Windows via the SQL Mail component of SQL Server and display a list of available MAPI profiles that are configured in Outlook and it specifies which profile is the default profile. If it doesn't display any records, then either Outlook is not configured correctly or SQL Server is not running under a domain account with Outlook profiles configured. In order to use this procedure in SQL Server or SQL Server , you must enable the "SQL Mail XPs" option in the Surface Area Configuration tool or within the sp_configure procedure.

exec xp_get_mapi_profiles

xp_subdirs

The xp_subdirs procedure displays a subset of the information avaialble through xp_dirtree. Xp_subdirs will display all the subfolders in a given folder. It can be very handy when you are building a directory tree within a table dynamically and you do not want to worry about the extra parameters of the xp_dirtree procedure.

exec xp_subdirs 'd:mssql'

xp_test_mapi_profiles

The procedure xp_test_mapi_profiles is another undocumented stored procedure that is very useful when you are setting up SQL Mail. It will start, then stop, a MAPI session to ensure that MAPI is configured correctly and working within the confines of Microsoft SQL Server. I should note that it does not verify the mail server configuration within the MAPI client (Outlook) nor does it send a test message.

The procedure accepts a single input parameter. That parameter is the name of the MAPI profile you wish to test. Like the xp_get_mapi_profiles procedure, for this stored procedure to function in SQL Server and SQL Server , you must enable the "SQL Mail XPs" option in the Surface Area Configuration tool or within the sp_configure procedure.

When working with the SQL Mail stored procedures, be aware that SQL Mail is still slated for removal from the Microsoft SQL Server platform. That means the procedures sp_get_mapi_profiles and xp_test_mapi_profiles are slated for removal, as they are part of the SQL Mail subsystem. You should do all mail work on SQL Server and later using Database Mail instead of SQL Mail to ensure code portability with future versions of SQL Server. Microsoft initially slated SQL Mail for removal in SQL Server , however, based on its inclusion in the current beta release, its future in SQL Server is unknown.

xp_unpackcab

Along with the xp_makecab procedure comes the xp_unpackcab extended stored procedure, and it does just what it says: It extracts files from cab files. The first paramater is the cab file, the second is the path you want to extract to and the third is verbose logging. A fourth paramater lets you specify the "extract to" file name.

exec xp_unpackcab 'c:test.cab', 'c:temp', 1

While this is not intended to be a complete list of the undocumented stored procedures in SQL Server, it does provide a reference point for many of these procedures with the hope of making the lives of the SQL Server administrators easier. Remember, you should never count on these procedures surviving from one SQL Server version to the next, nor should you expect their code base to remain the same between versions. That said, go code and enjoy.

All information provided about Microsoft SQL Server (Katmai) is based on beta edition .0. of the software and is subject to change without notice.

推荐整理分享一些SQLServer存储过程参数及举例(sqlserver存储过程实例详解),希望有所帮助,仅作参考,欢迎阅读内容。

一些SQLServer存储过程参数及举例(sqlserver存储过程实例详解)

文章相关热门搜索词:sqlserver用的什么存储引擎,sql server储存过程可以分为哪几种,sql server的储存过程主要包括,sql server的储存过程主要包括,sqlserver中可以使用哪个储存过程调用操作,sqlserver 储存过程,sql server存储,sql server存储,内容如对您有帮助,希望把文章链接给更多的朋友!

SQLserver安装时要求CDKEY的解决办法 [可用]如果出现安装sqlserver要求CD-KEY的情况,请使用regedt找开注册表,在以下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManager]中建立一个DWORD

SQL Server允许重复空字段不空字段值唯一 表结构如下面代码创建CREATETABLEtest_tb(TestIdintnotnullidentity(1,1)primarykey,Captionnvarchar()null);GO解决方案1:对于这个问题,大家的第一个想法可能是:在Caption

SQL Server复制功能要避开缺陷的干扰小结 SQLServer的复制分为三种,下面介绍一下这三种复制技术及其存在的一些缺陷,大家在使用时可以根据具体的情境选择适用的复制方法,避开这些缺陷的

标签: sqlserver存储过程实例详解

本文链接地址:https://www.jiuchutong.com/biancheng/349214.html 转载请保留说明!

上一篇:sqlserver 2000中每个服务器角色的解释(sqlserver2000怎么用)

下一篇:SQLserver安装时要求CDKEY的解决办法(安装sql server需要注意什么)

  • 小规模纳税人月收入多少免征增值税
  • 固定资产进项税的账务处理
  • 增值税的专用发票有几联
  • 房地产销售商品房税率
  • 补缴以前年度附加税如何入账
  • 安全生产费用怎么入账
  • 商业汇票申请贴现分录
  • 对公账户的钱都是国有资产吗
  • 可供出售金融资产公允价值变动
  • 印花税缴款怎么用银行卡支付
  • 上月计提工资下月要冲回吗冲会吗
  • 连号发票不许报销的具体发票类型
  • 应纳税所得额超过36000至144000
  • 招标代理公司转让
  • 广告公司制作警示牌可以开具什么样的发票?
  • app 开发公司的账务处理
  • 重复缴税怎么做账
  • 药店的成本费用有哪些
  • 收到原未计入应收项目的交易性金融资产的利息
  • 应交增值税账面数
  • 银行定期存款的利息是每个月给你吗
  • 房租摊销表怎么做
  • 客户支付货款时扣除了手续费
  • 会计中坏账准备的借贷方向
  • win7系统ie浏览器在哪里
  • win7为什么现在不能用了
  • 哪些资产损失可以转回
  • 其他应付款的核算范围包括应付短期租赁
  • vue-html
  • 拔罐的好处和坏处除湿
  • php数据库语句
  • PHP:imagegrabscreen()的用法_GD库图像处理函数
  • 微笑的树懒哥斯达黎加
  • 萤火虫发光器的用途
  • 在建工程转无形资产 会计准则
  • vue3刷新组件
  • 对公账户的银行卡号是几位数
  • 公章没有数字是什么情况
  • springboot+chatgpt+chatUI Pro开发智能聊天工具
  • vports命令
  • 未开票收入为负数是什么意思
  • 卫生医疗收费专业有哪些
  • 工资月末结转
  • 固定资产一次性扣除如何做账
  • php5.6.和7.2区别
  • 小规模公司的做账要求
  • 二手车经销管理办法
  • 小规模增值税纳税人优惠政策
  • 工业企业中制造费用包括哪些内容
  • 长期待摊费用为什么属于资产
  • 事业单位其他支出科目
  • 已认证抵扣的发票如何做账
  • 业务招待费 纳税调增
  • 总资产法怎么计算公式
  • 劳务派遣公司小规模纳税人如何开票
  • 公司向税务局缴纳税款
  • 固定资产资本化后续支出
  • 实缴资本在公司能查到吗
  • 现金日记账与现金流量表的区别
  • 月末库存商品的成本怎么算
  • 原始凭证按来源分为
  • 资产处置收益和资产减值损失区别
  • centos6.10修改主机名
  • 桌面快捷方式不显示图标怎么办
  • Ubuntu 15.04系统怎么安装Visual Studio Code 2015?
  • 在Linux系统中安装VS
  • dvd-rom drive是什么意思
  • Win10 Mobile RS2预览版14926升级错误代码800703ed的解决方法
  • win10周年更新版是什么意思
  • win7 ie
  • windows8.1crazy error
  • 谷歌浏览器点更新没反应
  • javascript登录验证
  • [置顶]电影名字《收件人不详》
  • python中按下某个按键
  • jquery 异步提交表单
  • jquery 插件写法
  • 国家对高校食堂的最新管理规定
  • 怎么查询工程师名下的项目
  • 打印缴纳社保电子缴税凭证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设