SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |

Недокументированный SQL

ПУБЛИКАЦИИ  

Автор: Вячеслав Брылёв (aka Glory)

[В начало]

Вступление

При реализации любого большого проекта, над которым трудиться большая группа разработчиков, последние создают для удобства своей работы некоторое количество промежуточных программ. Некоторые из них в готовом варианте продукта остаются доступными конечному пользователю, но по разным причинам не находят отражения в документации. Microsoft SQL Server 2000 в этом отношении не исключении. При всем огромном количестве описанных в Books OnLine процедур существует еще довольно большое число процедур, которые можно запустить на выполнение. Автор статьи попытался экспериментальным путем выяснить, можно ли что-то реально использовать из этого многообразия не отображенных в документации средств. Т.к. все недокументированные особенности логически разбиты на виды (процедуры, расширенные процедуры, функции) и размещаются в двух системных базах (master и msdb), то и в данной статье рассмотрение идет в том же порядке.

Тестирование проводилось для Microsoft SQL Server 2000 Enterprise Edition SP2, установленном на Microsoft Windows2000 Advanced Server SP2. Все скрипты выполнялись в Query Analyzer с правами системного администратора. Тестирование каждого скрипта выполнялась независимо о других скриптов, поэтому вопросы совместимости недокументированных процедур между собой выходят за рамки данной статьи. Кроме того, судя по обрывочным комментариям внутри процедур, возможно полное изменение как способов вызова, так и логики работы процедур при выходе следующих обновлений фирмы Microsoft для SQL Server 2000. (На всякий случай вот моя переменная @@VERSION Microsoft SQL Server 2000 - 8.00.534 (Intel X86) Nov 19 2001 13:23:50 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack2)

Результаты экспериментов оформлены в виде таблицы. Англоязычное описание взято либо из текста самой процедуры, либо из интернетовских или печатных изданий. Автор допускает возможность неправильной трактовки со своей стороны как результатов работы процедуры, так и способов её вызова.

[В начало]

Недокументированные процедуры базы master

MS_sqlctrs_users

Выводит информацию о текущих процессах и пользователях.

sp_blockcnt

Выводит информацию о текущих количестве блокированных пользователей.

sp_checknames

Проверяет ключевые системные таблицы на наличие не-ASCII символов.

sp_column_privileges_rowset

Выводит список прав назначенных на столбцы заданной таблицы.

sp_column_rowset

Выводит список столбцов заданной таблицы.

sp_enumerrorlogs

Выводит список текущих файлов журнала ошибок.

sp_enumoledbsources

Выводит список текущих OLEDB источников данных.

sp_fixindex

Удаляет/пересоздает индексы системных таблиц.

sp_foreign_keys_rowset

Выводит список связей таблицы по PK-FK.

sp_gettypestring

Возвращает символьное представление типа данных столбца таблицы.

sp_indexes_rowset

Выводит список индексов для заданной таблицы.

sp_linkedservers_rowset

Выводит список информацию о присоединенном сервере.

sp_MS_marksystemobject

Устанавливает бит принадлежности объекта к системным объектам (0xC0000000). Некотрые функции и команды DBCC могут работать неправильно, если вызываются из объекта, у которого не установлен данный бит. Установка данного бита влияет на результат, возвращаемый для свойства IsMSShipped объекта.

sp_MS_upd_sysobj_category

Разрешает/запрещает специальный режим, в котором все создаваемые объекты автоматически приобритают статус системных объектов. Значение параметра @pSeqMode равное 1 разрешает данный режим, значение равное 2 запрещает.

sp_MSaddguidcolumn

Добавляет в заданную таблицу столбец со свойством ROWGUIDCOL. Также отмечает таблицу как таблицу для репликации(для снятия данного признака нужно использовать процедуру sp_MSunmarkreplinfo).

sp_MSaddguidindex

Создает в заданной таблице индекс по столбцу со свойством ROWGUIDCOL.

sp_MSaddlogin_implicit_ntlogin

Добавляет SQL Server логин соответсвующий NT логину.

sp_MSadduser_implicit_ntlogin

Добавляет пользователя базы соответсвующего NT логину.

sp_MScheck_uid_owns_anything

Возвращает 1, если пользователь является владельцем какого-либо объекта в текущей базе.

sp_MSdbuseraccess

Возвращает список баз данных, к которым текущий пользователь имеет доступ.

sp_MSdbuserpriv

Возвращает битовую маску прав пользователя

sp_MSdependencies

Возвращает список зависимостей объекта.

sp_MSdrop_object

Удаляет таблицу, представление, триггер или процедуру.

sp_MSforeachdb

Выполняет до 3-х команд для всех баз сервера. Символ, заданный параметром @replacechar в исполняемых командах будет заменяться на имя базы. Параметры @precommand и @postcomand могут быть использованы для перенаправления результатов выполнения команд в один выходной набор.

sp_MSforeachtable

Выполняет до 3-х команд для всех таблиц базы(дополнительный фильтр можно задать с помощью параметра @whereand). Символ, заданный параметром @replacechar в исполняемых командах будет заменяться на имя таблицы. Параметры @precommand и @postcomand могут быть использованы для перенаправления результатов выполнения команд в один выходной набор.

sp_MSget_colinfo

Возвращает имя и тип данных столбца таблицы.

sp_MSget_type

Возвращает имя и тип данных столбца таблицы.

sp_MSget_file_existence

Проверяет наличие файла.

sp_MSget_oledbinfo

Возвращает инфомацию о OLEDB провайдере заданного присоединенного сервера.

sp_MSget_qualified_name

Возвращает имя объекта по его идентификатору в формате [object_owner].[object_name]

sp_MSget_setup_paths

Возвращает пути, выбранные для установки ядра сервера и системных баз.

sp_MSgetalertinfo

Возвращает установки оповещения fail-safe оператора.

sp_MSGetServerProperties

Возвращает информацию о режиме запуска SQL сервера и об учетной записи, под которой осуществляется запуск.

sp_MSgettools_path

Возвращает путь, выбранный для установки клиентских утилит.

sp_MSguidtostr

Преобразует тип данных uniqueidentifier в тип данных nvarchar.

sp_MShelp_identity_property

Возвращает параметры столбца со свойством identity.

sp_MShelpcolumns

Возвращает список столбцов таблицы с их свойствами.

sp_MShelpindex

Возвращает список индексов таблицы.

sp_MShelptype

Возвращает список типов данных.

sp_MSindexspace

Возвращает данные о размерах индексов.

sp_MSis_pk_col

Проверяет входит ли заданный столбец таблицы в первичный ключ.

sp_MSkilldb

Удаляет с помощью DBCC DBREPAIR заданную базу, даже если она не является поврежденной.

sp_MSloginmappings

Выводит соответствие логинов и пользователей(псевдонимов пользователей) в каждой базе.

sp_MSmaptype

Формирует по заданным параметрам текстовое представление типа данных.

sp_MSmatchkey

Проверяет вхождение заданных столбцов в первичный ключ.

sp_MSobjectprivs

Отображает информацию о правах пользователей.

sp_MSobjsearch

Осуществляет поиск объекта по заданному имени.

sp_MSsetalertinfo

Изменяет установки оповещения fail-safe оператора.

sp_MSsetbit

Маскирует заданый бит в переменной типа varbinary.

sp_MSSetServerProperties

Устанавливает режим запуска сервера(автоматический или ручной).

sp_MStable_has_unique_index

Возвращает id уникального индекса, либо 0 если такого нет.

sp_MStablechecks

Возвращает список СHECK constraint для заданной таблицы.

sp_MStablekeys

Возвращает список DRI key для заданной таблицы.

sp_MStablerefs

Возвращает список объектов, от которых зависит заданная таблица или объектов, которые зависят от заданной таблицы.

sp_MStablespace

Возвращает информацию о физическом размере таблицы.

sp_MStestbit

Проверяет установлен ли бит с заданным номером в переменной типа varbinary.

sp_MSunc_to_drive

Выделяет из UNC пути букву диска.

sp_MSuniquecolname

Генерирует уникальное имя столбца для таблицы на основе заданного имени.

sp_MSuniquename

Возвращает уникальное для текущей базы имя объекта на основе заданного имени.

sp_MSuniqueobjectname

Возвращает уникальное для текущей базы имя объекта на основе заданного имени.

sp_MSuniquetempname

Возвращает уникальное для tempdb имя объекта на основе заданного имени.

sp_objectfilegroup

Возвращает filegroup к которому принадлежит объект.

sp_oledb_column_constraints

Возвращает список constraints для заданного столбца таблицы.

sp_oledb_database

Возвращает список баз.

sp_oledb_defdb

Возвращает базу по умолчанию для текущего коннекта.

sp_oledb_deflang

Возвращает языковую установку по умолчанию для текущего коннекта.

sp_oledb_indexinfo

Возвращает информацию о заданном индексе таблицы.

sp_oledb_language

Возвращает информацию о возможных языковых установках.

sp_outputbuffer

Возвращает отредактированный результат работы DBCC OUTPUTBUFFER для заданного SPID.

sp_primary_keys_rowset

Возвращает список первичных ключей таблицы.

sp_procedure_params_rowset

Возвращает список параметров процедуры.

sp_procedures_rowset

Возвращает список процедур текущей базы.

sp_provider_types_rowset

Возвращает список системных типов данных.

sp_readerrorlog

Возвращает содержимое журнала ошибок.

sp_remove_tempdb_file

Удаляет вторичный файл данных базы tempdb.

sp_table_constraints_rowset

Выводит список всех constraint для заданной таблицы.

sp_table_privileges_rowset

Выводит список прав назначенных для заданной таблицы.

sp_table_statistics_rowset

Выводит информацию о statistic.

sp_tablecollations

Выводит информацию о collation столбцов заданной таблицы.

sp_tables_info_rowset

Выводит информацию о таблице/представлении.

sp_tables_rowset

Выводит информацию о таблице/представлении.

sp_tableswc

Выводит информацию о таблице/представлении.

sp_tempdbspace

Выводит информацию о размере базы tempdb.

sp_user_counter

Устанавливает значение соответствующего пользовательского счетчика в Performance Monitor.

sp_validlang

Проверяет является ли заданное значение поддерживаемым сервером языком.

sp_who2

Выводит информацию о текущих процессах и пользователях.

ПроцедураОписание(англ.)Пример вызоваПримечание
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.

Комментарии? Поправки? Дополнения? brylyev@hotmail.com

Редакция: Александра Гладченко  2002г.

Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013