Полезные, недокументированные хранимые процедуры SQL Server 2000

ПУБЛИКАЦИИ  

По материалам статьи Alexander Chigrik на swynk.com: «SQL Server 2000 Useful undocumented stored procedures»

В этой статье Александр рассказывает о некоторых полезных недокументированных хранимых процедурах, имеющихся в SQL Server 2000.

Sp_MSget_qualified_name

Эта хранимая процедура используется для получения составного имени заданного идентификатора объекта. Синтаксис:

sp_MSget_qualified_name object_id, qualified_name

Где: object_id - является идентификатором объекта. Object_id - int. Qualified_name - является составным именем объекта. Qualified_name - nvarchar (512). Ниже представлен пример, с помощью которого можно получить составное имя для таблицы authors, базы данных pubs.

USE pubs
GO
declare @object_id int, @qualified_name nvarchar(512)
select @object_id = object_id('authors')
EXEC sp_MSget_qualified_name @object_id, @qualified_name output
select @qualified_name
GO
Here is the result set from my machine:
--------------------------------------
[dbo].[authors]

Sp_MSdrop_object

Эта хранимая процедура используется для уничтожения объекта (это может быть таблица, представление, хранимая процедура или триггер), заданного идентификатором объекта, именем объекта и его владельцем. Если идентификатор объекта, имя объекта и его владелец не определены, то ничего не будет уничтожено. Синтаксис:

sp_MSdrop_object [object_id] [,object_name] [,object_owner]

Где: object_id - идентификатор объекта. Object_id - int, со значением по умолчанию NULL. Object_name - имя объекта. Object_name - sysname, со значением по умолчанию NULL. Object_owner - владелец объекта. Object_owner - sysname, со значением по умолчанию NULL. Ниже представлен пример, с помощью которого можно уничтожить таблицу titleauthor в базе данных pubs.

USE pubs
GO
declare @object_id int
select @object_id = object_id('titleauthor')
EXEC sp_MSdrop_object @object_id
GO

Sp_gettypestring

Эта хранимая процедура возвращает тип строки для заданного идентификатора таблицы и идентификатора столбца. Синтаксис:

sp_gettypestring tabid, colid, typestring

Где: tabid - является идентификатором таблицы. tabid - int. colid - является идентификатором столбца. colid - int. typestring - является строкой, как выходной параметр. typestring - nvarchar(255). Ниже представлен пример, с помощью которого можно получить строку для столбца номер 2 в таблице authors, базы данных pubs.

USE pubs
GO
declare @tabid int, @typestring nvarchar(255)
select @tabid = object_id('authors')
EXEC sp_gettypestring @tabid, 2, @typestring output
select @typestring
GO
Here is the result set from my machine:
-------------------------------
varchar(40)

Sp_MSgettools_path

Эта хранимая процедура возвращает путь к инструментальным средствам и утилитам SQL Server 2000. Синтаксис:

sp_MSgettools_path install_path

Где: install_path - путь инсталляции, выходной параметр. Install_path - nvarchar (260). Ниже представлен пример, с помощью которого можно получить путь к инструментальным средствам и утилитам SQL Server 2000.

USE master
GO
declare @install_path NVARCHAR(260)
EXEC sp_MSgettools_path @install_path OUTPUT
select @install_path
GO
Here is the result set from my machine:
------------------------------------------------------------
C:\Program Files\Microsoft SQL Server\80\Tools

Sp_MScheck_uid_owns_anything

Эта хранимая процедура возвращает список объектов, принадлежа указанному пользователю. Синтаксис:

sp_MScheck_uid_owns_anything uid

Где uid - идентификатор пользователя, уникальный в базе данных. 1 - владелец базы данных. uid - smallint. Ниже представлен пример, с помощью которого можно получить список объектов, принадлежащих владельцу базы данных pubs.

USE pubs
GO
EXEC sp_MScheck_uid_owns_anything 1
GO


Перевод: Александр Гладченко  2001г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz