MS_sqlctrs_users |
- |
exec MS_sqlctrs_users |
- |
sp_blockcnt |
- |
exec sp_blockcnt |
- |
sp_checknames [@mode] |
Checks key system tables for non-ASCII
names. |
sp_checknames |
Проверяются следующие
таблицы/поля syscolumns.name, sysindexes.name,
sysobjects.name, sysusers.name выбранной базы на наличие
не 7 битных ASCII символов. Для каждой из проверяемых
таблиц формируется свой набор записей. Пареметр @mode=
'silent' подавляет вывод результатов. |
sp_column_privileges_rowset @table_name
[,@table_schema] [,@column_name] [,@grantor]
[,@grantee] sp_column_privileges_rowset;2
[@table_schema] [,@column_name] [,@grantor]
[,@grantee] sp_column_privileges_rowset;5
@table_server [,@table_catalog] [,@table_name]
[,@table_schema] [,@column_name] [,@grantor]
[,@grantee] |
- |
USE pubs exec sp_column_privileges_rowset
'authors' exec sp_column_privileges_rowset;2 exec
sp_column_privileges_rowset;5 'MyRemoteServer' |
В дейстивтельности является группой из 3-х процедур.
Вторая процедура группы выводит список прав на столбцы
для всех таблиц. Третья - для столбцов таблиц удаленного
сервера. @table_schema - дополнительный фильтр по
владельцу таблицы @column_name - дополнительный
фильтр по имени столбца @grantor - дополнительный
фильтр по имени пользователя, назначившего права
доступа @grantee - дополнительный фильтр по имени
пользоваетля, имеющего права доступа @table_server -
дополнительный фильтр по имени удаленного
сервера @table_catalog - дополнительный фильтр по
имени базы на удаленном сервере |
sp_column_rowset @table_name
[,@table_schema] [,@column_name] sp_column_rowset;2
[@table_schema] [,@column_name] sp_column_rowset;5
@table_server [,@table_catalog] [,@table_name]
[,@table_schema] [,@column_name] |
- |
USE pubs exec sp_column_rowset
'authors' exec sp_column_rowset;2 exec
sp_column_rowset;5 'MyRemoteServer' |
В дейстивтельности является группой из 3-х процедур.
Вторая процедура группы выводит список столбцов для всех
таблиц. Третья - список столбцов таблиц удаленного
сервера. @table_schema - дополнительный фильтр по
владельцу таблицы @column_name - дополнительный
фильтр по имени столбца @table_server -
дополнительный фильтр по имени удаленного
сервера @table_catalog - дополнительный фильтр по
имени базы на удаленном сервере |
sp_enumerrorlogs |
Enumerates the current server error log
files. |
master..sp_enumerrorlogs |
- |
sp_enumoledbsources |
Enumerates the OLEDB data providers
visible on the server. |
sp_enumoledbsources |
- |
sp_fixindex @dbname, @tabname, @indid |
Allows indexes on system tables to be
dropped/recreated. |
USE northwind EXEC sp_dboption
'northwind', 'single', true EXEC sp_fixindex
'northwind', 'sysobjects', 2 EXEC sp_dboption
'northwind', 'single', false |
Процедура возвращает 0 при успешном завершении и 1 в
случае ошибки. |
sp_foreign_keys_rowset @pk_table_name
[,@pk_table_schema] [, @fk_table_name]
[,@fk_table_schema] [,
@fk_table_catalog] sp_foreign_keys_rowset;2
@fk_table_name [,@fk_table_schema] [,@pk_table_name]
[,@pk_table_schema] [,
@pk_table_catalog] sp_foreign_keys_rowset;3
[@pk_table_schema] [, @pk_table_catalog]
[,@fk_table_schema] [,
@fk_table_catalog] sp_foreign_keys_rowset;5 @server,
[, @pk_table_catalog] [, @fk_table_catalog]
[,@pk_table_name] [,@pk_table_schema] [, @fk_table_name]
[,@fk_table_schema] |
- |
USE pubs exec sp_foreign_keys_rowset
'titles' exec sp_foreign_keys_rowset;2
'titles' exec sp_foreign_keys_rowset;3 exec
sp_foreign_keys_rowset;5 'myremoteserver', 'pubs' |
В дейстивтельности является группой из 4-х процедур.
Вторая процедура группы выводит список связей PK-FK где
заданная таблица участвует как FK. Третья - список всех
связей PK-FK для текущей таблицы. Четвертая - список
всех связей PK-FK для таблицы удаленного
сервера. @pk_table_name - дополнительный фильтр по
имени PK таблицы @fk_table_name - дополнительный
фильтр по имени FK таблицы @pk_table_schema -
дополнительный фильтр по владельцу PK
таблицы @fk_table_schema - дополнительный фильтр по
владельцу FK таблицы @pk_table_catalog -
дополнительный фильтр по имени базы на удаленном сервере
для PK таблицы @fk_table_catalog - дополнительный
фильтр по имени базы на удаленном сервере для FK
таблицы @server - дополнительный фильтр по имени
удаленного сервера |
sp_gettypestring @tabid, @colid,
@typestring output |
Renders a textual description of a
column's data type. |
USE pubs declare @tabid int,@typestr
varchar(30) SET @tabid = OBJECT_ID('authors') EXEC
sp_gettypestring @tabid, 1, @typestr OUT SELECT
@typestr |
- |
sp_indexes_rowset @table_name
[,@index_name] [,@table_schema] sp_indexes_rowset;2
[,@index_name] [,@table_schema] sp_indexes_rowset;5
@table_server [,@table_catalog] [,@table_name]
[,@index_name] [,@table_schema] |
- |
USE pubs exec sp_indexes_rowset
'titles' exec sp_indexes_rowset;2 exec
sp_indexes_rowset;5 'MyRemoteServer' |
В дейстивтельности является группой из 3-х процедур.
Вторая процедура группы выводит список всех индексов.
Третья - список индексов для таблиц удаленного
сеовера. @table_schema - дополнительный фильтр по
владельцу таблицы @index_name - дополнительный фильтр
по имени индекса @table_server - дополнительный
фильтр по имени удаленного сервера @table_catalog -
дополнительный фильтр по имени базы на удаленном
сервере |
sp_linkedservers_rowset
@srv_name sp_linkedservers_rowset;2 |
- |
USE pubs exec sp_linkedservers_rowset
'MylinkedServer' sp_linkedservers_rowset;2 |
В дейстивтельности является группой из 2-х процедур.
Вторая процедура группы выводит список всех
присоединенных серверов.
|
sp_MS_marksystemobject @objname |
Sets an object's system bit
(0xC0000000). Several fucntions and DBCC command verbs
do not work properly unless executed from a system
object. Setting this bit will cause the IsMSShipped
object property to return 1. |
sp_MS_marksystemobject 'sp_dir' |
Процедура возвращает 0 при успешном завершении и 1 в
случае ошибки. |
sp_MS_upd_sysobj_category @pSeqMode
integer |
Enables/disables a specisl system mode
wherein newly created objects are automatically system
objects. Setting @pSeqMode to 1 enables this mode;
setting it to 2 disables it. |
sp_MS_upd_sysobj_category 1 |
Процедура возвращает 0 при успешном завершении и
значение < > 0 в случае ошибки. |
sp_MSaddguidcolumn @source_owner,
@source_table |
Adds a ROWGUIDCOL column to a table.
Also marks the table for replication (use exec
sp_MSunmarkreplinfo to reverse this). |
sp_MSaddguidcolumn dbo, testguid |
Новый столбец добавляется в конец таблицы. Имя
столбца rowguid. Столбец заполняется данными. При
наличии в таблице столбца с именем rowguid с типом
данных не uniqueidentifier добавляется столбец
rowguidNNN, где NNN произвольное число. Процедура
возвращает 0 при успешном завершении и 1 в случае
ошибки. |
sp_MSaddguidindex @publication,
@source_owner, @source_table |
Creates an index on a table's ROWGUIDCOL
column. |
sp_MSaddguidindex publ1, dbo,
testguid |
(Не удалось проверить, т.к. на тестовом сервере не
было репликаций - Прим.перев.) |
sp_MSaddlogin_implicit_ntlogin
@loginname |
Adds SQL Server login that corresponds
to an existing NT login. |
sp_MSaddlogin_implicit_ntlogin
'GoofyTingler' |
Доменную учетную запись нужно указывать с доменом
'MYDOMAIN\MyUser'. Базой по умолчанию такого логина
будет master, тип доступа - Via group membership.
Процедура возвращает 0 при успешном завершении и 1 в
случае ошибки(отсутствии NT логина). |
sp_MSadduser_implicit_ntlogin @ntname |
Adds a database user that corresponds to
an existing NT login. |
sp_MSaddluser_implicit_ntlogin
'GoofyTingler' |
Доменную учетную запись нужно указывать с доменом
'MYDOMAIN\MyUser'. Тип доступа к базе устанавливается
Via group membership. Процедура возвращает 0 при
успешном завершении и 1 в случае ошибки(отсутствии NT
логина). |
sp_MScheck_uid_owns_anything @uid |
Returns 1 when user owns any objects in
the current database. |
declare @ret int, @uid int select
@uid = user_id() EXEC @ret =
sp_MScheck_uid_owns_anything @uid SELECT @ret |
Кроме того возвращаются 1-4 набора данных, если
заданный пользователь является владельцем объектов,
типов данных, привилегий и ролей соответственно. |
sp_MSdbuseraccess @mode='perm'|'db',
@qual=db_name_mask |
Returns a list of databases a user can
access and a bitmap representing the access in each. |
возвращает список всех баз, к которым
пользователь имеет доступ EXEC
master..sp_MSdbuseraccess @mode='db' возвращает
список всех баз, к которым пользователь имеет доступ и
названия котрых совпадают с маской EXEC
master..sp_MSdbuseraccess @mode='db',
@qual='%m%' возвращает битовую маску прав
пользователя в базе mydb EXEC
master..sp_MSdbuseraccess @mode='perm',
@qual='mydb' возвращает список только для текущей
базы EXEC sp_MSdbuseraccess @mode= 'db' |
По комментариям в тексте процедуры вроде бы следует,
что возвращается не маска всех прав, а только маска на
право доступа к базе. Нежелательными(неправильно
интерпретируемыми) символами в имени базы являются [ и
''(квадратная скобка и сдвоенная одинарная
кавычка). |
sp_MSdbuserpriv @mode=
'perm'|'serv'|'ver'|'role' |
Returns a bitmap representing user
privileges |
EXEC master..sp_MSdbuserpriv
@mode='perm' EXEC master..sp_MSdbuserpriv
@mode='serv' EXEC master..sp_MSdbuserpriv
@mode='role' EXEC master..sp_MSdbuserpriv
@mode='ver' |
При @mode='perm' для формирования маски прав
используется функция PERMISSIONS(), только для user_id()
= 1 или члена ролей sysadmin или db_owner маска
устанавливается в 0x03ff. При @mode='serv' для
формирования маски прав проверяется право создания баз
(0x0002) и право выполнения процедуры sp_addextendedproc
(0x0004), только для user_id() = 1 или члена ролей
sysadmin или db_owner маска устанавливается в
0x0007. При @mode='role' для формирования маски прав
используются проверки на вхождение пользователя в
следующие роли: dbcreator - 0x0001, diskadmin -
0x0002, processadmin - 0x0004, securityadmin -
0x0008, serveradmin - 0x0010, setupadmin -
0x0020, sysadmin - 0x0040, bulkadmin -
0x10000, db_accessadmin - 0x0080, db_datareader -
0x0100, db_ddladmin - 0x0200, db_denydatareader -
0x0400, db_denydatawriter -
0x0800, db_backupoperator - 0x1000, db_owner -
0x2000, db_securityadmin - 0x4000, db_datawriter -
0x8000 |
sp_MSdependencies @objname, @objtype,
@flags int, @objlist |
Shows object dependencies. |
USE pubs EXEC @ret =
sp_MSdependencies @objname = 'titleauthor' EXEC @ret
= sp_MSdependencies @objname = 'titleauthor', @flags =
0x411ff EXEC @ret = sp_MSdependencies @objname =
'titleauthor', @flags = 0x1011ff create table
#temp1(objid int, objtype int) insert #temp1 select
object_id('titleauthor'), cast(0 as int) EXEC @ret =
sp_MSdependencies @flags = 0x1011ff, ,@objlist =
N'#temp1' drop table #temp1
|
Если пареметры @objname и @objtype не заданы, то
выводятся зависимости для всех объектов текущей
базы. Можно передать в процедуру список объектов,
через параметр @objlist, в котором указать имя таблицы.
Указанная таблица должна обязательно содержать поля
objid int, objtype int. @flags является битовой
маской, с помощью которой можно менять характер и
содержимое возвращаемого результата. Параметр условно
поделен на две группы - 4 старших байта и 4 младших
байта Маска 4 младших байтов задает какие типы
объектов будут выводиться в возвращаемом наборе
(значения взяты из текста процедуры) - 0x0001 -
UDF - 0x0002 - system tables or MS-internal objects,
системные таблицы или объекты - 0x0004 - view,
представления - 0x0008 - user table, пользовательские
таблицы - 0x0010 - procedure, процедуры - 0x0020 -
log, лог ????(при тестировании всегда выдавался пустой
набор) - 0x0040 - default, значения по умолчанию -
0x0080 - rule, правило - 0x0100 - trigger,
триггер - 0x0400 - uddt, пользовательский тип
данных Примеры использования: 0x011c - trig, view,
user table, procedure, все триггеры, представления,
пользовательский таблицы и процедуры 0x00c1 - rule,
default, datatype, правила, значения по-умолчанию, типы
данных 0x11fd - all but systables/objects, все
объекты кроме системных 0x11ff - all, все
объекты Маска 4 старших байтов задает режим
отображения в возвращаемом наборе(значения взяты из
текста процедуры) - 0x10000 - return multiple
parent/child rows per object, для каждого входного
объекта создается свой результат - 0x20000 -
descending return order, обратный порядок
сортировки - 0x40000 - return children instead of
parents, вместо зависимостей от объекта возвращаются
зависимости для объекта !!получение зависимостей во всех
направлениях!! - 0x80000 - Include input object in
output result set, включает проверяемый объект в
результат вывода - 0x100000 - return only firstlevel
(immediate) parents/children, возвращаются только прямые
зависимости - 0x200000 - return only DRI
dependencies, возвращаются только DRI
зависимости
|
sp_MSdrop_object [@object_id]
[,@object_name] [, @object_owner] |
Generically drops a table, view,
trigger, or procedure. |
sp_MSdrop_object @object_name =
'myview13' |
Пареметр @object_name имеет приоритет над
@object_id, т.е. если заданы оба параметра, то будет
предпринята попытка удалить объект @object_name. Если
параметр @object_owner не задан, то ищется объект,
принадлежащий текущему пользователю. |
sp_MSforeachdb @command1 [,
@replacechar] [, @comand2] [, @command3] [,@precommand]
[, @postcommand] |
Executes up to three commands for every
database on the system. @replacechar will be replaced
with the name of each database. @precommand and
@postcomand can be used to direct commands to a single
result set. |
exec sp_MSforeachdb @command1 = 'PRINT
''Listing *''', @replacechar = '*', @command2 ='USE *;
INSERT pubs..temp1 SELECT DB_NAME()', @precommand = 'if
exists (select * from dbo.sysobjects where id =
object_id(N''pubs..temp1'') and OBJECTPROPERTY(id,
N''IsUserTable'') = 1) DROP TABLE pubs..temp1 CREATE
TABLE pubs..temp1(dbname varchar(50))', @postcommand =
'SELECT * FROM pubs..temp1' |
Для перебора всех баз данных используется курсор. Не
выбираются базы данных, недоступные на данный момент,
находящиеся в режиме single user(кроме той к которой
присоединен пользователь) и базы, к которым у
пользователя запустившего процедуру нет прав
доступа. |
sp_MSforeachtable @command1 [,
@replacechar] [, @comand2] [, @command3] [, @whereand]
[, @precommand] [, @postcommand] |
Executes up to three commands for every
table in database(optionally matching the @whereand
clause). @replacechar will be replaced with the name of
each table. @precommand and @postcomand can be used to
direct commands to a single result set. |
exec sp_MSforeachtable @command1 =
'PRINT ''Listing ?''', @command2 ='INSERT pubs..temp1
SELECT OBJECT_NAME(OBJECT_ID(''?''))', @precommand = 'if
exists (select * from dbo.sysobjects where id =
object_id(N''pubs..temp1'') and OBJECTPROPERTY(id,
N''IsUserTable'') = 1) DROP TABLE pubs..temp1 CREATE
TABLE pubs..temp1(tablename varchar(50))', @whereand = '
AND name like ''pub%''', @postcommand = 'SELECT * FROM
pubs..temp1' |
Для перебора всех таблиц базы используется курсор.
Параметер @whereand должен содержать условия пригодные
для использования в выражении WHERE запроса и начинаться
с AND. |
sp_MSget_colinfo @tabid, @colid,
@columns, @GetTextImageInfo, @colname OUT, @type OUT |
Returns the name and type of table
column. |
use pubs declare @tabid int, @colname
sysname, @type nvarchar(4000) set @tabid =
object_id('authors') exec @ret = sp_MSget_type
@tabid, 1, NULL, NULL, @columns=NULL, @colname OUT,
@type OUT SELECT @colname, @type |
Параметр @GetTextImageInfo не влияет на значения
выходных параметров(только на код возврата). Параметр
@columns представляет собой битовую маску. Если в
переданном значении замаскирован бит с номером столбца,
то выходные параметры будут отличны от NULL |
sp_MSget_type @tabid, @colid, @colname
OUT, @type OUT |
Returns the name and type of table
column. |
use pubs declare @tabid int, @colname
sysname, @type nvarchar(4000) set @tabid =
object_id('authors') exec @ret = sp_MSget_type
@tabid, 1, @colname OUT, @type OUT SELECT @colname,
@type |
В отличии от процедуры sp_MSget_colinfo возвращаемое
значение @type содержит размер столбца. |
sp_MSget_file_existence @filename,
@exists OUT |
Returns a result indicating whether file
exists. |
declare @exists bit EXEC
sp_MSget_file_existence 'c:\io.sys', @exists
OUT SELECT @exists EXEC sp_MSget_file_existence
'c:\io1.sys', @exists OUT SELECT @exists |
Использует для проверки xp_cmdshell. |
sp_MSget_oledbinfo @server [, @infotype]
[, @login] [, @password] |
Returns OLEDB provider information for a
linked server. |
sp_MSget_oledbinfo @server=
'mylinkedserver' |
Использует xp_MSget_oledbinfo после проверки входных
параметров. |
sp_MSget_qualified_name @object_id,
@qualified_name OUT |
Translates an object ID into a fully
qualified object name. |
use pubs declare @objid int, @objname
sysname set @objid = object_id('titles') exec
sp_MSget_qualified_name @objid, @objname out select
@objname |
- |
sp_MSget_setup_paths @sql_path OUTPUT,
@data_path OUTPUT |
- |
DECLARE @sql_path NVARCHAR(260),
@data_path NVARCHAR(260) EXEC sp_MSget_setup_paths
@sql_path OUTPUT, @data_path OUTPUT |
Данные читаются из реестра. |
sp_MSgetalertinfo @includeaddresses |
- |
sp_MSgetalertinfo |
Данные читаются из реестра. При @includeaddresses
< > 0 возвращается дополнительный набор,
содержащий информацию о доступных способах
оповещени(e-mail, pager, net send) |
sp_MSGetServerProperties |
- |
sp_MSGetServerProperties |
Данные читаются из реестра. |
sp_MSgettools_path @tools_path OUT |
- |
DECLARE @tools_path
NVARCHAR(260) EXEC master..sp_MSgettools_path
@tools_path OUT SELECT @tools_path |
Данные читаются из реестра. |
sp_MSguidtostr (@guid, @mystr OUT |
Returns uniqueidentifier as a string. |
DECLARE @guid AS uniqueidentifier,
@guidstr sysname SET @guid = NEWID() exec
sp_MSguidtostr @guid, @guidstr OUT SELECT @guid,
@guidstr |
- |
sp_MShelp_identity_property @tablename,
@ownername |
- |
USE pubs EXEC
sp_MShelp_identity_property N'jobs' |
- |
sp_MShelpcolumns @tablename[, @flags] [,
@orderby] [, @flags2] |
- |
USE pubs EXEC sp_MShelpcolumns
N'jobs' |
Параметр @flags является битовой маской для
маскирования следующих действий в конечном
результате 0x0200 - Не выводится информация о DRI
(Checks, Primary/Foreign/Unique Keys, и т.д. 0x0400 -
Преобразует UDDT-ы к названиям базовых типов
данных 0x80000 - заменяет тип timestamp на
binary(8) 0x40000000 - не выводся данные о свойстве
identity Параметр @orderby сортирует конечный
результат по номеру (NULL или 'id') или имени(любое
другое значение) столбца. Параметр @flags2
разрешает/запрещает (1/0) вывод данных о свойствах
precision и scale. |
sp_MShelpindex @tablename [, @indexname]
[, @flags] |
Lists index catalog info. |
USE pubs EXEC sp_MShelpindex
N'authors' |
Информацию об одном индексе можно получить, задав в
параметре @indexname его имя. Параметр @flags
разрешает/запрещает (0/1) вывод данных о
статистиках. |
sp_MShelptype [@typename] [, @flags] |
Lists data type catalog info. |
USE pubs EXEC sp_MShelptype |
По умолчанию возвращаются два набора для системных и
пользовательских типов данных соответственно.С помощью
параметра @flags можно получить либо только первый
набор('sdt'), либо только второй('uddt').С помощью
параметра @typename можно получить информацию только для
заданного типа данных. |
sp_MSindexspace @tablename [,
@indexname] |
Lists index size info. |
USE pubs EXEC sp_MSindexspace
N'authors' |
Информацию об одном индексе можно получить, задав в
параметре @indexname его имя, в этом случае выводиться
информация только о размере индекса. |
sp_MSis_pk_col @source_table, @colname,
@indid |
Checks a column to see whether it is a
primary key. |
USE pubs DECLARE @ret int EXEC
@ret = sp_MSis_pk_col 'authors', 'au_lname', 2 SELECT
@ret |
На самом деле просто проверяет использование столбца
в индексе с номером @indid. |
sp_MSkilldb @dbname |
Uses DBCC DBREPAIR to drop a
database(even if the database is not damaged). |
sp_MSkilldb 'northwind2' |
- |
sp_MSloginmappings [@loginname] [,
@flags] |
Lists login, database, user, and alias
mappings. |
sp_MSloginmappings USE pubs EXEC
master..sp_MSloginmappings 'sa' USE pubs EXEC
sp_MSloginmappings null, 1 |
По умолчанию создается отдельный выходной набор для
каждого логина. Параметр @flags является битовой маской
со следующими значениями: 0x01 - выводятся данные только
для текущей базы. |
sp_MSmaptype @type OUT, @len, @prec,
@scale |
- |
declare @type nvarchar(60) SET @type
= 'varchar' exec sp_MSmaptype @type OUT,20, 5,
1 select @type SET @type = 'decimal' exec
sp_MSmaptype @type OUT,20, 5, 1 select @type |
- |
sp_MSmatchkey @tablename, @col1[, @col2]
[, @col3] [, @col4] [, @col5] [, @col6] [, @col7] [,
@col8] [, @col9] [, @col10] [, @col11] [, @col12] [,
@col133] [, @col14] [, @col15] [, @col16] |
- |
USE pubs EXEC sp_MSmatchkey N'jobs',
'job_id' EXEC sp_MSmatchkey N'jobs', 'job_id',
'job_desc' |
Если проверяемые столбцы входят в первичный ключ, то
возвращается имя соответствующего индекса. |
sp_MSobjectprivs @objname[, @mode]
[,@objid] [,@srvpriv] [,@prottype] [,@grantee] [,
@flags] [, @rollup] |
- |
USE pubs EXEC sp_MSobjectprivs
N'authors', N'object', null, null, null, null, null,
0 EXEC sp_MSobjectprivs N'authors', N'column', null,
null, null, null, null, 0 EXEC sp_MSobjectprivs
N'authors', N'column', null, null, null, null, null,
1 EXEC sp_MSobjectprivs N'guest', N'user', null,
null, null, null, null, 0 declare @objid int set
@objid =object_id('authors') EXEC sp_MSobjectprivs
NULL, NULL, @objid, 193, 205, N'guest' |
Параметр @flags на работу не влияет. Параметры можно
использовать 2 независимыми группами. - @objid,
@srvpriv, @prottype, @grantee - @objname, @mode,
@rollup Режим запуска определяется по передаче в
@objid значения < > NULL. При @mode = 'object'
| 'column', @objname должен содержать имя объекта при
@mode = 'user', @objname должен содержать имя
пользователя. @srvpriv и @prottype являются значениями
для полей action и protecttype таблицы sysprotects(см. в
BOL возможные значения) |
sp_MSobjsearch @searchkey [, @dbname] [,
@objecttype] [, @hitlimit] [, @casesensitive] [,
@status] [, @extpropname] [, @extpropvalue] |
- |
USE pubs EXEC sp_MSobjsearch N'%a%',
N'*', default, 20 EXEC sp_MSobjsearch N'%a%', N'pubs',
4096, 15, 0, 0, '%a%' |
Поиск может охватывать все элементы базы и проходит
по таблицам sysobjects, syscolumns и sysindexes.
@dbname - имя базы данных, в которой осуществляется
поиск (по умолчанию имя текуще базы, значение '*' задает
поиск по всем базам, к которым пользователь имеет
доступ). @objecttype может иметь следующие значения,
ограничивающие список выводимых объектов -- user
table = 1 from @dbname..sysobjects -- system table =
2 from @dbname..sysobjects -- view = 4 from
@dbname..sysobjects -- sp = 8 from
@dbname..sysobjects -- rf(repl sp)= 16 from
@dbname..sysobjects -- xp = 32 from
@dbname..sysobjects -- trigger = 64 from
@dbname..sysobjects -- UDF= 128 from
@dbname..sysobjects -- DRI Constraints = 256 from
@dbname..sysobjects -- log = 512 from
@dbname..sysobjects -- column = 1024 from
@dbname..syscolumns -- index = 2048 from
@dbname..sysindexes -- all = 4096 @hitlimit
ограничивает выводимый список заданнымчислом(по
умолчанию 100) Если сервер различает регистр, то с
помощью @casesensitive можно включить/выключить (0/1)
поиск с учетом регистра. С помощью @status можно
включить/выключить (1/0) вывод информации о ходе
выполнения поиска. Информация о ход евыполнения
выводится в виде дополнительных наборор вида "текущий
шаг поиска/общее количество шагов поиска". С помощью
@extpropname и @extpropvalue можно включить в область
поиска и расширенные свойства объектов по имени и
значению соответственно. |
sp_MSsetalertinfo [@failsafeoperator]
[,@notificationmethod] [, @forwardingserver]
[,@forwardingseverity] [,@pagertotemplate] [,
@pagercctemplate] [,@pagersubjecttemplate]
[,@pagersendsubjectonly] [, @failsafeemailaddress]
[,@failsafepageraddress] [,@failsafenetsendaddress]
[,@forwardalways] |
- |
sp_MSgetalertinfo
'NewFailSafeOperator' |
Данные записываются в реестр. Изменяются только
установки, параметры которых < > NULL. Параметры
@forwardingseverity и @forwardalways имеют тип int,
остальные - nvarchar(255) |
sp_MSsetbit @bm OUT, @coltoadd
[,@toset] |
- |
declare @bm varbinary(128) EXEC
sp_MSsetbit @bm output, 7 SELECT @bm, cast(@bm as
int) EXEC sp_MSsetbit @bm output, 9 SELECT @bm,
cast(@bm as int) SET @bm = 0xFFFE EXEC sp_MSsetbit
@bm output, 7, 0 SELECT @bm, cast(@bm as int) EXEC
sp_MSsetbit @bm output, 9, 0 SELECT @bm, cast(@bm as
int) |
Нумерация байтов ведется слева направо(от 1 до 128),
а битов в байте справа налево(от 1 до 8). Т.е. если вы
хотите отмаскировать 1 бит во втором байте, то параметр
@coltoadd должен быть равен 9 (8 бит это первый байт и 1
это первый бит во втором байте). За один вызов
маскируется один бит. С помощью @toset можно либо
устаналивать бит (1, оно же значение поумолчанию) либо
сбрасывать бит (0). |
sp_MSSetServerProperties @auto_start |
- |
sp_MSgetalertinfo 1 |
0 - ручной режим запуска, не 0 - автоматический.
Данные заносятся в реестр. Только для NT
платформы. |
sp_MStable_has_unique_index @tabid |
Returns id of unique index, if it
exists, else 0. |
USE pubs declare @objid int, @ret
int set @objid =object_id('titles') EXEC @ret =
sp_MStable_has_unique_index @objid SELECT @objid,
@ret |
- |
sp_MStablechecks @tablename [,
@flags] |
- |
USE pubs EXEC sp_MStablechecks
'authors' |
Судя по комментарию в тексте текст constraint может
не выводиться, если он не содержиться полностью в одной
записи в syscomments. |
sp_MStablekeys @tablename [,@colname] [,
@type] [, @keyname] [, @flags] |
Lists a table's keys. |
USE pubs EXEC @ret = sp_MStablekeys
'titles' EXEC @ret = sp_MStablekeys 'titles',
'pub_id' EXEC @ret = sp_MStablekeys null, null,
'UPKCL_titleidind' EXEC @ret = sp_MStablekeys
'titles', null, null, null, 3 |
Необходимо задать @keyname или @tablename(первый
имеет приоритет).@type есть битовая маска.Установленный
2 бит разрешает вывод primary key, 4ый - foreign key.
Если во @flags установлен первый бит, то выводиться
дополнительный набор о таблицах, связанных с проверяемой
по PK-FK. |
sp_MStablerefs @tablename [, @type=
'[actual | all][tables | keys | keycols]'] [,@direction
= 'primary | foreign'] [,@reftable] [, @flags] |
Lists the objects a table references or
that refernce it. |
USE pubs --Таблицы, для которых
titles выступает как PK таблица EXEC sp_MStablerefs
'titles','actualkeys' --Таблицы, которые titles
использует как PK таблицы EXEC sp_MStablerefs
'titles','actualkeys', 'foreign' --Список всех
таблиц EXEC sp_MStablerefs 'titles','allkeys',
'foreign' |
@reftable можно использовать как дополнительный
фильтр для вывода результатов. |
sp_MStablespace @tablename |
- |
USE pubs exec sp_MStablespace
'titles' |
Информация берется из системных таблиц, поэтому
отображаемые данные могут быть неактуальны. |
sp_MStestbit @tablename |
- |
USE pubs declare @ret int exec
@ret = sp_MStestbit 0x09, 1 select @ret exec @ret
= sp_MStestbit 0x09, 3 select @ret exec @ret =
sp_MStestbit 0x09, 4 select @ret
|
Если бит установлен, то возвращаемое значение <
> 0. |
sp_MSunc_to_drive @unc_path,
@local_server, @local_path |
Converts a UNC path to a drive. |
USE pubs declare @local_path
sysname exec sp_MSunc_to_drive '\\GEMINI\C$\',
'GEMINI', @local_path OUT SELECT @local_path |
Несколько простых манипуляций на предмет выделения
части строки.При "левых" входных параметрах возвращает
значение из @unc_path. |
sp_MSuniquecolname @table_name,
@base_colname, @unique_colname out |
Generates a unique column name for a
specified table using a base name. |
USE pubs declare @unique_colname
sysname exec sp_MSuniquecolname 'titles', 'title_id',
@unique_colname OUT SELECT @unique_colname |
Если столбца с именем, заданным в @base_colname, в
таблице нет, то возвращается @base_colname. Если есть,
то к базовому имени прибавляется @@spid+1. |
sp_MSuniquename @seed, @start |
Returns a result set containing a unique
object name for a current database using a specified
seed name and start value. |
USE pubs EXEC sp_MSuniquename 'xx',
5 |
Уникальное имя формируется по схеме
@seed@start__@@spid. Если объект с таким именем
существует, то берется значение@start+1 и так
далее. |
sp_MSuniquename @name_in, @name_out
OUT |
Generates a unique object name for the
current database. |
USE pubs DECLARE @outname
sysname SET @outname = '' exec
sp_MSuniqueobjectname 'authors', @outname OUT SELECT
@outname |
Если объекта с именем, заданым в @name_in, не
существует, то возвращется значение @name_in. Иначе в
@name_in последовательно слева направо заменяются
символы до получения уникального имени. |
sp_MSuniquetempname @name_in, @name_out
OUT |
Generates a unique object name for the
tempdb. |
USE pubs DECLARE @outname
sysname SET @outname = '' CREATE TABLE
tempdb..temp1(f1 int) exec sp_MSuniquetempname
'temp1', @outname OUT SELECT @outname DROP TABLE
tempdb..temp1 SELECT @outname |
Алгоритм генерации аналогичен процедуре
sp_MSuniqueobjectname, только уникальность объекта
автоматически определяется для базы tempdb. |
sp_objectfilegroup @objid |
Returns the object's data filegroup if
applicable. |
USE pubs declare @objid int set
@objid =object_id('titles') EXEC sp_objectfilegroup
@objid |
- |
sp_oledb_column_constraints @tblname,
@colname, @dropcnst |
- |
USE pubs exec
sp_oledb_column_constraints N'authors', N'au_id', 50 |
@dropcnst битовая маска для отображения собственно
PK, Unique Constraint и Default Constraint(16, 32 и 2
соответсвенно). |
sp_oledb_database |
- |
sp_oledb_database |
Данные берутся из master..sysdatabases без
каких-либо дополнительных проверок. |
sp_oledb_defdb |
- |
sp_oledb_defdb |
- |
sp_oledb_deflang |
- |
sp_oledb_deflang |
- |
sp_oledb_indexinfo @objname ,@indname |
- |
USE pubs exec sp_oledb_indexinfo
'authors', 'UPKCL_auidind' |
- |
sp_oledb_language |
- |
sp_oledb_language |
- |
sp_outputbuffer @spid |
Produce cleaned-up DBCC OUTPUTBUFFER
report for a given SPID. |
sp_outputbuffer @@spid |
Производит следующие действия над результатом DBCC
OUTPUTBUFFER: - удаляет символы с кодом 0x00 -
удаляет символы '.' , которыми DBCC OUTPUTBUFFER
заменяет nonprintable символы, но оставляет
действительные символы '.' - заменяет
nonprintable символы на пробелы, при этом
последовательность пробелов сжимается до одного -
оставляет символы перевода строки Вывод результата
осуществляется с помощью команды PRINT. |
sp_primary_keys_rowset @table_name
[,@table_schema] |
- |
USE pubs exec sp_primary_keys_rowset
'titleauthor' |
Параметр @table_schema задает дополнительный фильтр
по владельцу таблицы. |
sp_procedure_params_rowset
@procedure_name [, @group_number] [, @procedure_schema]
[,@parameter_name] |
- |
USE pubs exec
sp_procedure_params_rowset 'byroyalty' exec
sp_procedure_params_rowset 'byroyalty', 1, null,
'@percentage' |
@group_number - дополнительный фильтр по номеру
процедуры в группе(по умолчанию 1), @procedure_schema -
дополнительный фильтр по владельцу процедуры,
@parameter_name - дополнительный фильтр по имени
парвметра. |
sp_procedures_rowset @procedure_name [,
@group_number] [,
@procedure_schema] sp_procedures_rowset;2 ,@procedure_schema |
- |
USE pubs exec sp_procedures_rowset
'byroyalty' exec sp_procedures_rowset;2 'dbo' |
В действительности является группой процедур.
Процедура по умолчанию(1) выводит информацию о заданной
в @procedure_name процедуре. @group_number -
дополнительный фильтр по номеру процедуры в группе (по
умолчанию 1), @procedure_schema - дополнительный фильтр
по владельцу процедуры. Воторая процедура группы
выводит информацию о всех процедурах заданного владельца
в текущей базе. |
sp_provider_types_rowset [@data_type ]
[,@best_match] |
- |
sp_provider_types_rowset |
@data_type - дополнительный фильтр по типу
данных, @best_match - дополнительный фильтр по
???. |
sp_readerrorlog [@p1] [,@p2] [,@p3]
[,@p4] |
Lists the system errr log corresponding
by @p1. |
sp_readerrorlog sp_readerrorlog 1 |
По умолчанию(@p1=0) выводиться содержимое текущего
лога. Информацию выводиться строками по 255 символов.
Если выводимого сообщения больше 255, то значение
столбца ContinuationRow устанавливается в 1. Данную
процедуру можно использоваться для чтения любого файла
на жестком диске SQL Server, а также поиска по ключевым
словам файле. Для этого нужно - в @p1 задать любое
число от 1 до 99; - в @p2 задать имя файла вместе с
путем; - в @p3 задать номер строки в файле; - в
@p4 задать строку поиска. |
sp_remove_tempdb_file @filename |
Removes a file on which tempdb is
based. |
USE master exec sp_remove_tempdb_file
'tempdev02' |
- |
sp_table_constraints_rowset @table_name
[,@table_schema] [,@table_catalog] [,@constraint_name]
[,@constraint_schema] [,@constraint_catalog sysname]
[,@constraint_type] sp_table_constraints_rowset;2
[@table_schema] [,@table_catalog] [,@constraint_name]
[,@constraint_schema] [,@constraint_catalog sysname]
[,@constraint_type] |
- |
USE pubs exec
sp_table_constraints_rowset 'authors' exec
sp_table_constraints_rowset;2 |
В дейстивтельности является группой процедур. Вторая
процедура группы выводит список constraint для всех
таблиц. @table_schema - дополнительный фильтр по
владельцу таблицы @table_catalog - дополнительный
фильтр по имени базы(???) @constraint_name -
дополнительный фильтр по имени
contraint @constraint_schema - дополнительный фильтр
по владельцу contraint @constraint_catalog sysname -
дополнительный фильтр по имени
базы(???) @constraint_type - дополнительный фильтр по
типу contraint 'PRIMARY KEY' | 'UNIQUE' | 'FOREIGN
KEY' | 'CHECK' |
sp_table_privileges_rowset @table_name
[,@table_schema] [,@grantor]
[,@grantee] sp_table_privileges_rowset;2
[@table_schema] [,@grantor]
[,@grantee] sp_table_privileges_rowset;5
@table_server [,@table_catalog] [,@table_name]
[,@table_schema] [,@grantor] [,@grantee] |
- |
USE pubs exec
sp_table_privileges_rowset 'authors' exec
sp_table_privileges_rowset;2 exec
sp_table_privileges_rowset;5 'MyRemoteServer' |
В дейстивтельности является группой из 3-х процедур.
Вторая процедура группы выводит список прав для всех
таблиц. Третья - для таблицы удаленного
сеовера. @table_schema - дополнительный фильтр по
владельцу таблицы @grantor - дополнительный фильтр по
имени пользователя, назначившего права
доступа @grantee - дополнительный фильтр по имени
пользоваетля, имеющего права доступа @table_server -
дополнительный фильтр по имени удаленного
сервера @table_catalog - дополнительный фильтр по
имени базы на удаленном сервере |
sp_table_statistics_rowset sp_table_statistics_rowset;2
[@table_catalog] [,@table_schema] [,@table_name]
[,@stat_catalog] [,@stat_schema] [,@stat_name] |
- |
USE pubs exec
sp_table_statistics_rowset;2 null, null,
'authors' exec sp_table_statistics_rowset;2 |
В дейстивтельности является группой из 2-х процедур.
Первая процедура группы всегда выдает пустой
набор. @table_catalog - дополнительный фильтр по
имени базы @table_schema - дополнительный фильтр по
владельцу таблицы @table_name - дополнительный фильтр
по имени таблицы @stat_catalog - дополнительный
фильтр по имени базы statistic @stat_schema -
дополнительный фильтр по владельцу
statistic @stat_name - дополнительный фильтр по имени
statistic |
sp_tablecollations @object |
- |
USE pubs exec sp_tablecollations
'titles' |
- |
sp_tables_info_rowset @table_name
[,@table_schema]
[,@table_type] sp_tables_info_rowset;2
[@table_schema] [,@table_type] |
- |
USE pubs sp_tables_info_rowset
'titles' sp_tables_info_rowset;2 |
В дейстивтельности является группой из 2-х процедур.
Вторая процедура группы выдает информацию о всех
таблицах/представления текщей базы. @table_schema -
дополнительный фильтр по владельцу
таблицы @table_type - дополнительный фильтр по типу
таблицы: TABLE | VIEW | SYSTEM TABLE | SYSTEM VIEW |
sp_tables_rowset @table_name
[,@table_schema] [,@table_type] sp_tables_rowset;2
[@table_schema] [,@table_type] sp_tables_rowset;5
@table_server [,@table_catalog] [,@table_name]
[,@table_schema] [,@table_type] |
- |
USE pubs exec sp_tables_rowset
'authors' exec sp_tables_rowset;2 exec
sp_tables_rowset;5 'MyRemoteServer' |
В дейстивтельности является группой из 3-х процедур.
Вторая процедура группы выводит список всех
таблиц/представлений. Третья - таблицы/представления
удаленного сеовера. @table_schema - дополнительный
фильтр по владельцу таблицы @table_type -
дополнительный фильтр по типу таблицы: TABLE | VIEW |
SYSTEM TABLE | SYSTEM VIEW @table_server -
дополнительный фильтр по имени удаленного
сервера @table_catalog - дополнительный фильтр по
имени базы на удаленном сервере |
sp_tableswc [@table_name]
[,@table_owner] [,@table_qualifier] [,@table_type] |
- |
exec sp_tableswc null, null, 'pubs' |
Информация выбирается с помощью sp_tables для
заданной базы(кроме model и тех, куда у пользователя нет
доступа). @table_name - дополнительный фильтр по
имени таблицы @table_owner - дополнительный фильтр по
владельцу таблицы @table_qualifier - дополнительный
фильтр по имени базы @table_type - дополнительный
фильтр по типу таблицы: TABLE | VIEW | SYSTEM
TABLE |
sp_tempdbspace |
Return space usage info for tempdb. |
exec sp_tempdbspace |
Информация выбирается из системных таблиц. Размеры
выводяться в Mb. |
sp_user_counterX |
- |
sp_user_counterX 3 |
Установка производиться с помощью dbcc
setinstance. |
sp_validlang @name |
- |
declare @ret int exec @ret =
sp_validlang 'english' select @ret exec @ret =
sp_validlang 'russian' select @ret exec @ret =
sp_validlang 'russian1' select @ret |
Возвращается 0, если данный язык поддерживается
сервером, и 1, если нет. |
sp_who2 @loginname |
Provides information about current users
and processes. |
exec sp_who2 exec sp_who2
'13' exec sp_who2 'active' exec sp_who2 'sa' |
Аналогична процедуре sp_who. |