SQL Server 2000 поставляется с набором полезных недокументированных хранимых процедур, которые могут быть полезны в определенных ситуациях. В этой статье мы рассмотрим некоторые из этих хранимых процедур и как их можно использовать.
sp_MSget_qualified_name
Хранимая процедура sp_MSget_qualified_name
используется для получения квалифицированного имени для заданного идентификатора объекта. Это может быть полезно, когда вам нужно программно ссылаться на объект в вашем коде. Вот пример:
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
Это вернет квалифицированное имя для таблицы “authors” в базе данных “pubs”.
sp_MSdrop_object
Хранимая процедура sp_MSdrop_object
используется для удаления объекта (таблицы, представления, хранимой процедуры или триггера) для заданного идентификатора объекта, имени объекта и владельца объекта. Если эти параметры не указаны, ничего не будет удалено. Вот пример:
USE pubs
GO
DECLARE @object_id INT
SELECT @object_id = OBJECT_ID('titleauthor')
EXEC sp_MSdrop_object @object_id
GO
Это удалит таблицу “titleauthor” из базы данных “pubs”.
sp_gettypestring
Хранимая процедура sp_gettypestring
возвращает строку типа для заданного идентификатора таблицы и идентификатора столбца. Это может быть полезно, когда вам нужно определить тип данных конкретного столбца. Вот пример:
USE pubs
GO
DECLARE @tabid INT, @typestring NVARCHAR(255)
SELECT @tabid = OBJECT_ID('authors')
EXEC sp_gettypestring @tabid, 2, @typestring OUTPUT
SELECT @typestring
GO
Это вернет строку типа для второго столбца в таблице “authors”.
sp_MSgettools_path
Хранимая процедура sp_MSgettools_path
возвращает путь к инструментам и утилитам SQL Server 2000. Это может быть полезно, когда вам нужно ссылаться на эти инструменты в вашем коде. Вот пример:
USE master
GO
DECLARE @install_path NVARCHAR(260)
EXEC sp_MSgettools_path @install_path OUTPUT
SELECT @install_path
GO
Это вернет путь установки для инструментов и утилит SQL Server 2000.
Заключение
Это всего лишь несколько примеров недокументированных хранимых процедур, доступных в SQL Server 2000. Хотя они не задокументированы, эти хранимые процедуры могут быть полезны в определенных сценариях. Однако важно отметить, что недокументированные функции могут не поддерживаться в будущих версиях SQL Server, поэтому используйте их с осторожностью.