Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Служба Рассылок Subscribe.Ru

#084<<  #085

СОВЕТ

Недокументированный 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)

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

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

MS_sqlctrs_users
sp_blockcnt
sp_checknames
sp_column_privileges_rowset
sp_column_rowset
sp_enumerrorlogs
sp_enumoledbsources
sp_fixindex
sp_foreign_keys_rowset
sp_gettypestring
sp_indexes_rowset
sp_linkedservers_rowset
sp_MS_marksystemobject
sp_MS_upd_sysobj_category
sp_MSaddguidcolumn
sp_MSaddguidindex
sp_MSaddlogin_implicit_ntlogin
sp_MSadduser_implicit_ntlogin
sp_MScheck_uid_owns_anything
sp_MSdbuseraccess
sp_MSdbuserpriv
sp_MSdependencies
sp_MSdrop_object
sp_MSforeachdb
sp_MSforeachtable
sp_MSget_colinfo
sp_MSget_type
sp_MSget_file_existence
sp_MSget_oledbinfo
sp_MSget_qualified_name
sp_MSget_setup_paths
sp_MSgetalertinfo
sp_MSGetServerProperties
sp_MSgettools_path
sp_MSguidtostr
sp_MShelp_identity_property
sp_MShelpcolumns
sp_MShelpindex
sp_MShelptype
sp_MSindexspace
sp_MSis_pk_col
sp_MSkilldb
sp_MSloginmappings
sp_MSmaptype
sp_MSmatchkey
sp_MSobjectprivs
sp_MSobjsearch
sp_MSsetalertinfo
sp_MSsetbit
sp_MSSetServerProperties
sp_MStable_has_unique_index
sp_MStablechecks
sp_MStablekeys
sp_MStablerefs
sp_MStablespace
sp_MStestbit
sp_MSunc_to_drive
sp_MSuniquecolname
sp_MSuniquename
sp_MSuniqueobjectname
sp_MSuniquetempname
sp_objectfilegroup
sp_oledb_column_constraints
sp_oledb_database
sp_oledb_defdb
sp_oledb_deflang
sp_oledb_indexinfo
sp_oledb_language
sp_outputbuffer
sp_primary_keys_rowset
sp_procedure_params_rowset
sp_procedures_rowset
sp_provider_types_rowset
sp_readerrorlog
sp_remove_tempdb_file
sp_table_constraints_rowset
sp_table_privileges_rowset
sp_table_statistics_rowset
sp_tablecollations
sp_tables_info_rowset
sp_tables_rowset
sp_tableswc
sp_tempdbspace
sp_user_counter
sp_validlang
sp_who2

ПроцедураОписаниеОписание(англ.)Пример вызоваПримечание
MS_sqlctrs_users Выводит информацию о текущих процессах и пользователях. - exec MS_sqlctrs_users -
sp_blockcnt Выводит информацию о текущих количестве блокированных пользователей. - exec sp_blockcnt -
sp_checknames [@mode] Проверяет ключевые системные таблицы на наличие не-ASCII символов. 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 Выводит список текущих OLEDB источников данных. 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]
Выводит список связей таблицы по PK-FK. - 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 Устанавливает бит принадлежности объекта к системным объектам (0xC0000000). Некотрые функции и команды DBCC могут работать неправильно, если вызываются из объекта, у которого не установлен данный бит. Установка данного бита влияет на результат, возвращаемый для свойства IsMSShipped объекта. 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 Разрешает/запрещает специальный режим, в котором все создаваемые объекты автоматически приобритают статус системных объектов. Значение параметра @pSeqMode равное 1 разрешает данный режим, значение равное 2 запрещает. 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 Добавляет в заданную таблицу столбец со свойством ROWGUIDCOL. Также отмечает таблицу как таблицу для репликации(для снятия данного признака нужно использовать процедуру sp_MSunmarkreplinfo). 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 Создает в заданной таблице индекс по столбецу со свойством ROWGUIDCOL. Creates an index on a table's ROWGUIDCOL column. sp_MSaddguidindex publ1, dbo, testguid (Не удалось проверить, т.к. на тестовом сервере не было репликаций - Прим.перев.)
sp_MSaddlogin_implicit_ntlogin @loginname Добавляет SQL Server логин соответсвующий NT логину. 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 Добавляет пользователя базы соответсвующего NT логину. 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 Возвращает 1, если пользователь является владельцем какого-либо объекта в текущей базе. 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] Выполняет до 3-х команд для всех баз сервера. Символ, заданный параметром @replacechar в исполняемых командах будет заменяться на имя базы. Параметры @precommand и @postcomand могут быть использованы для перенаправления результатов выполнения команд в один выходной набор. 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] Выполняет до 3-х команд для всех таблиц базы(дополнительный фильтр можно задать с помощью параметра @whereand). Символ, заданный параметром @replacechar в исполняемых командах будет заменяться на имя таблицы. Параметры @precommand и @postcomand могут быть использованы для перенаправления результатов выполнения команд в один выходной набор. 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] Возвращает инфомацию о OLEDB провайдере заданного присоединенного сервера. 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 Возвращает имя объекта по его идентификатору в формате [object_owner].[object_name] 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 Возвращает установки оповещения fail-safe оператора. - sp_MSgetalertinfo Данные читаются из реестра. При @includeaddresses < > 0 возвращается дополнительный набор, содержащий информацию о доступных способах оповещени(e-mail, pager, net send)
sp_MSGetServerProperties Возвращает информацию о режиме запуска SQL сервера и об учетной записи, под которой осуществляется запуск. - 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 Преобразует тип данных uniqueidentifier в тип данных nvarchar. 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 Возвращает параметры столбца со свойством identity. - 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 Удаляет с помощью DBCC DBREPAIR заданную базу, даже если она не является поврежденной. 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] Изменяет установки оповещения fail-safe оператора. - sp_MSgetalertinfo 'NewFailSafeOperator' Данные записываются в реестр. Изменяются только установки, параметры которых < > NULL. Параметры @forwardingseverity и @forwardalways имеют тип int, остальные - nvarchar(255)
sp_MSsetbit @bm OUT, @coltoadd [,@toset] Маскирует заданый бит в переменной типа varbinary. - 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 Возвращает id уникального индекса, либо 0 если такого нет. 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] Возвращает список СHECK constraint для заданной таблицы. - USE pubs
EXEC sp_MStablechecks 'authors'
Судя по комментарию в тексте текст constraint может не выводиться, если он не содержиться полностью в одной записи в syscomments.
sp_MStablekeys @tablename [,@colname] [, @type] [, @keyname] [, @flags] Возвращает список DRI key для заданной таблицы. 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 Проверяет установлен ли бит с заданным номером в переменной типа varbinary. - 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 Выделяет из UNC пути букву диска. 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 Возвращает уникальное для tempdb имя объекта на основе заданного имени. 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 Возвращает filegroup к которому принадлежит объект. 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 Возвращает список constraints для заданного столбца таблицы. - 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 Возвращает отредактированный результат работы DBCC 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 Удаляет вторичный файл данных базы tempdb. 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]
Выводит список всех constraint для заданной таблицы. - 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]
Выводит информацию о statistic. - 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 Выводит информацию о collation столбцов заданной таблицы. - 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 Выводит информацию о размере базы tempdb. Return space usage info for tempdb. exec sp_tempdbspace Информация выбирается из системных таблиц. Размеры выводяться в Mb.
sp_user_counterX Устанавливает значение соответствующего пользовательского счетчика в Performance Monitor. - 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

ССЫЛКИ НА СТАТЬИ

Параметры и стандарты именования объектов модели. Часть 2
Автор: Бен Этлингер.
Для этого ERwin4.0 предлагает сначала окно опций стандартов именования логических объектов, затем окно стандартов именования физических объектов и глоссарий. Следование такому порядку имеет смысл для пользователя, который уже установил свои стандарты или просто использует стандарты организации. Однако ознакомление со стандартами именований лучше начать с вкладки Glossary (Глоссарий)... [подробнее]
Консалтинг при автоматизации предприятий: подходы, методы, средства
Автор: Г.Н. Калянов.
Обследование является важнейшим и определяющим этапом выполнения консалтинговых проектов, на его основе осуществляется вся последующая деятельность. Длительность обследования обычно составляет 1-2 недели. По окончании обследования строится и согласуется с заказчиком предварительный вариант функциональной модели предприятия, включающей идентификацию внешних объектов и информационных взаимодействий с ними, а также детализацию до уровня основных деятельностей предприятия и информационных связей между этими деятельностями. В дальнейшем на основании согласованных моделей верхнего уровня и осуществляется построение детальных моделей... [подробнее]
Информационные технологии в Управлении предприятием
Автор: Крылович А.В.
Интегрированные информационные системы (ИС) управления промышленными предприятиями присутствуют на Российском рынке относительно недавно, эксперименты с внедрением данных систем на отечественных предприятиях стали проводится в основном с начала 90-х годов. Количество внедрений измеряется десятками, качество внедрения зачастую является предметом споров, слухов, домыслов и разочарований. В то же время интерес к интегрированным информационным системам не угасает и руководители предприятий отваживаются на рискованные шаги, ободренные щедрыми обещаниями специалистов отделов продаж, научными конференциями, статьями в органах печати и т.д... [подробнее]
FAQ: Администрирование MS SQL Server
Автор: НПО "Компьютер"
Часто задаваемые вопросы по администрированию MS SQL Server... [подробнее]
Эффективная работа с БД в VB 6.0
Автор: Кирилл Флоренский.
В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0... [подробнее]
Особенности бесконфликтного гетерогенного тиражирования между SQL Server 7.0 и Access 2000
Автор: N/A.
При проектировании распределенной базы данных для работы в гетерогенной среде разработчику всегда приходится решать ряд важных задач. Одна из них состоит в том, чтобы обеспечить минимум конфликтов при тиражировании данных. При этом, как правило, табличную структуру серверной части, а именно ее слой ссылочной целостности, всегда приходится изменять и дополнять, чтобы запись в таблице общей базы данных можно было идентифицировать однозначно. Такие изменения в табличной структуре, как, например, искусственное усиление первичных ключей, позднее необходимо учитывать в SQL-запросах клиентских приложений, что не всегда оправдано и, кроме того, неблагоприятно сказывается на производительности и удобстве работы с такой базой данных... [подробнее]
Связанные подзапросы и объединения
Автор: N/A.
Подзапросом называют запрос SELECT, который включается в другой запрос в качестве параметра или выражения. Они обычно используются, чтобы генерировать значение или набор результатов, которые используются в условиях главного запроса... [подробнее]

Новые технические статьи Microsoft

PRB: Backup, Copy, and Load Job Information Is Not Updated on the Log Shipping Monitor (Q292586)
FIX: ConnectionWrite Error When You Use Lightweight Pooling (Q303120)
INF: How to Grant Access to SQL Logins on a Standby Database When "guest" User Is Disabled (Q303722)
INF: How SQL Server Compares Strings with Trailing Spaces (Q316626)
PRB: Subscriptions in System Databases Not Supported (Q317832)
INF: Differences in STATISTICS IO, SQL Profiler and Sysprocesses IO Counters (Q314648)
BUG: Parallel Query Generates Access Violation from Derived Table Populated from NULL Parameters (Q257564)
FIX: Rebuildm and Setup Do Not Expose All the SQL Collations (Q312990)
PRB: Error Message 3266 Occurs When Microsoft Tape Backup Format Cannot be Read (Q290787)
INF: When to Use Tempdb in RAM (Q115050)
HOW TO: Enable Replication Agents for Logging to Output Files (Q312292)
PRB: Replication Subscribers Unable to Synchronize with Pull Subscription (Q240688)
HOW TO: Plan SQL Server CE Security for Mobile Devices (Q314783)
INF: Windows Authentication is the Default Security Mode After a SQL Server 2000 Typical Installation (Q269587)
FIX: AUTO-SHRINK Option or DBCC SHRINKDATABASE May Slow Down SQL Server 2000 Performance (Q296386)
INF: Testing Methods for SQL Server Tape Dumps or Loads (Q124023)
INF: Frequently Asked Questions - SQL Server 7.0 - Failover (Q195761)

ФОРУМ SQL.RU: САМЫЕ ПОПУЛЯРНЫЕ ТОПИКИ

О минимизации сетевого трафика... (вопрос для самообразования)
Delphi MS SQL без BDE?
Всех кто использует Linked Server касается. Ошибка!!!
Как организовать связь с удаленными филиалами?
И еще один вопрос - передача Null через datacombo (ADO ) ?
Как решитить такую задачу на SQL?
Проблема с подзапросом
особенности конструкций ... in (select ...)
Помогите Битый Backup
А вот так используют MSSQL в коммерческом продукте (Акцент 6)
Transaction Log (не могу сделать truncate)
Анализирую вот профайлером вызов SP - непонятки...
Ох уж эти блокировки
Помогите, кто может, с производительностью транзакций !
Права доступа к таблицам из хранимой процедуры
Ограничение (разрешение) доступа - помогите советом.
Как в триггере Update обработать Inserted при обновлении более 1 записи
Объясните плиз, что за блокировка PAGEIOLATCH_SH
тригер останавливает выполнение процедуры: КАК ИЗБЕЖАТЬ ЭТОГО
SQL Server и OLE объекты
Использование UDF.....
Права доступа к master..xp_cmdshell

ФОРУМ SQL.RU: ВОПРОСЫ ОСТАЛИСЬ БЕЗ ОТВЕТА

КУРСОРЫ В ODBC
Замучил linked server на Access в MSSQL2000
Execution Plan и печать
О так называемой SQL Server File System
дистрибутив
Как организовать связь с удаленными филиалами?
Тривиальный вопрос-2
Просуммировать
Как скрыть ошибку внутри ХП
Возврат пароля в ADO и OLEDB
Работа с ODBC
Передача параметров в ХП
restore from backup failed
Может кто подскажет? Updatebatch
Откат транзакции
xp-процедуры
HELP !!!!

#084<<  #085

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@pisem.net

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное