亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

一些SQL Server存儲過程參數及例子

2024-08-31 00:59:52
字體:
來源:轉載
供稿:網友

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 2000 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 2000SQL 2005SQL 2008

sp_executeresultsetX  

sp_MSforeachdbXXX

sp_MSforeachtableXXX

sp_readerrorlogXXX

xp_create_subdir XX

Xp_delete_file XX

xp_dirtreeXXX

xp_fileexistXXX

xp_fixeddrivesXXX

xp_getfiledetailsX  

xp_getnetnameXXX

xp_loginconfigXXX

xp_makecabX  

xp_msverXXX

xp_get_mapi_profilesXXX

xp_subdirsXXX

xp_test_mapi_profileXXX

xp_unpackcabX  

sp_executeresultset

Microsoft removed this handy little procedure called sp_executeresultset from SQL Server in SQL Server 2005. 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 '' + name
from sysobjects
where 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 2000 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 2005, 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 2005 and SQL 2008.

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 2005, 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:/MSSQL/Data'

xp_delete_file

Use the xp_delete_file stored procedure introduced in SQL Server 2005 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 int
exec xp_fileexist 'c:/importfile.csv', @file_exists OUTPUT
SELECT @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 2000. 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 sysname
exec xp_getnetname @machinename OUTPUT
select @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 2000, 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 45 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 2005 or SQL Server 2008, 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 2005 and SQL Server 2008, 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 2005 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 2008, however, based on its inclusion in the current beta release, its future in SQL Server 2008 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 2008 (Katmai) is based on beta edition 10.0.1019 of the software and is subject to change without notice.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品ady| 久久这里只有精品99| 久久精品视频导航| 91欧美精品成人综合在线观看| 欧美大片免费观看在线观看网站推荐| 97在线免费视频| 草民午夜欧美限制a级福利片| 4438全国亚洲精品在线观看视频| 黄色成人在线免费| 精品久久中文字幕| 亚洲xxxx视频| 亚洲国产精品yw在线观看| 一区二区三区精品99久久| 久久国内精品一国内精品| 国产一区玩具在线观看| 国产黑人绿帽在线第一区| 国产激情综合五月久久| 欧美成人国产va精品日本一级| 免费97视频在线精品国自产拍| 成人黄色短视频在线观看| 国产成人精品电影久久久| 亚洲福利视频久久| 亚洲欧美国产va在线影院| 欧美大奶子在线| 欧美麻豆久久久久久中文| 狠狠久久五月精品中文字幕| 国产精品日韩专区| 欧美激情精品久久久久久免费印度| 国产成人精品免高潮费视频| 国产精品va在线| 成人免费午夜电影| 国产在线高清精品| 91性高湖久久久久久久久_久久99| 永久555www成人免费| 国产欧美精品日韩精品| 欧美极品少妇与黑人| 日韩亚洲欧美成人| 久久国产色av| 亚洲第一页中文字幕| 91av在线播放| 中文字幕久精品免费视频| 黑人巨大精品欧美一区二区一视频| 欧美日韩国产精品一区二区不卡中文| 精品国产一区二区三区在线观看| 久久久国产影院| 欧美激情一区二区三区在线视频观看| 97久久久免费福利网址| 亚洲性生活视频在线观看| 日本精品在线视频| 亚洲自拍偷拍福利| 国产在线拍揄自揄视频不卡99| 亚洲曰本av电影| 国产成人在线播放| 国产精品高清免费在线观看| 欧美床上激情在线观看| 欧美极品第一页| 国产精品亚洲一区二区三区| 国产日韩换脸av一区在线观看| 欧美孕妇毛茸茸xxxx| 国产午夜精品全部视频在线播放| 欧美黑人一区二区三区| 欧美成aaa人片免费看| 亚洲欧美日韩精品久久| 欧美极品美女视频网站在线观看免费| 国产精品久久久久久亚洲调教| 亚洲www在线观看| 欧美黄色片在线观看| 亚洲女人天堂视频| 国产精品日韩一区| 91精品久久久久久久久久| 亚洲经典中文字幕| 日韩欧美有码在线| 热久久美女精品天天吊色| 日韩精品免费在线观看| 国产精品视频免费观看www| 日韩在线观看免费高清| 精品国产老师黑色丝袜高跟鞋| 在线成人激情黄色| 久久久亚洲网站| 午夜精品美女自拍福到在线| 深夜福利日韩在线看| 尤物yw午夜国产精品视频明星| 国产精品永久免费| 91免费精品国偷自产在线| 亚洲人成在线播放| 亚洲综合在线小说| 欧美大胆a视频| 中文亚洲视频在线| 精品欧美激情精品一区| 日韩中文字幕国产精品| 国产精品久久久久久av福利| 久久中文字幕视频| 成人免费网站在线| 精品久久久在线观看| 亚洲黄页视频免费观看| 亚洲精品一区在线观看香蕉| 亚洲综合在线播放| 日韩精品在线免费| 日韩av不卡电影| 欧美综合第一页| 精品日韩美女的视频高清| 亚洲福利视频专区| 欧美性少妇18aaaa视频| 午夜精品一区二区三区在线视| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美电影免费观看网站| 国产精品视频yy9099| 日韩专区中文字幕| 亚洲精品中文字| 国产精品久久久久福利| 日韩电影免费观看中文字幕| 欧美激情视频一区| 欧美疯狂做受xxxx高潮| 亚洲精品国产精品国自产观看浪潮| 国产精品视频26uuu| 亚洲韩国日本中文字幕| 57pao成人国产永久免费| 国产精品人人做人人爽| 亚洲福利在线视频| 精品国产一区二区三区久久久狼| 91精品国产综合久久男男| 日韩欧美高清在线视频| 亚洲天堂男人天堂| 亚洲美女又黄又爽在线观看| 欧美日韩福利视频| 久久久久久九九九| 欧美成人免费va影院高清| 国产精品视频网站| 欧美放荡办公室videos4k| 久久久女女女女999久久| 欧美国产亚洲精品久久久8v| 色噜噜国产精品视频一区二区| 久久精品在线播放| 亚洲精品美女在线观看播放| 亚洲qvod图片区电影| 一本一本久久a久久精品综合小说| 中文字幕九色91在线| 久久人体大胆视频| 色悠悠久久88| 国产成人精品免高潮在线观看| 欧美寡妇偷汉性猛交| 亚洲人高潮女人毛茸茸| 欧美性猛交xxxx富婆| 国产一区二区三区网站| 亚洲国产精品一区二区久| 国产成人精品免费视频| 欧美乱妇40p| 疯狂欧美牲乱大交777| 亚洲视频精品在线| 亚洲国产欧美一区二区三区久久| 麻豆国产va免费精品高清在线| 97在线免费观看视频| 96pao国产成视频永久免费| 狠狠色狠色综合曰曰| 91精品久久久久久久久久久久久| 欧美激情欧美激情| 成人福利视频网| 欧美日韩亚洲天堂| 亚洲美女激情视频| www.美女亚洲精品| 欧美成人午夜激情在线| 日韩精品中文字| 国产精品成人久久久久| 高潮白浆女日韩av免费看|