Что делать когда возможностей  и функционала  SQL  сервера не хватает ? 
Представим что нужно получить размер свободного пространства на всех дисках.
Тогда на помощь придет OLE автоматизация, которая является одной из самых полезных возможностей  SQL сервера, доступная еще с 2005 версии.
Как же эти воспользоваться, для начала нужно включить  эту опцию на  SQL сервере
--включить  интеграцию  с OLE
sp_configure  'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure  'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Затем воспользоваться следующими процедурами:
При обращении к объекту OLE-автоматизации из  Transact-SQL сперва необходимо вызвать системную хранимую процедуру  sp_OACreate,   
которая создает экземпляр объекта в адресном пространстве экземпляра компонента Компонент  Database Engine.
После создания экземпляра объекта можно вызывать следующие хранимые процедуры для работы со свойствами,  
методами и получением сведений об ошибках, связанных с созданным объектом.
sp_OAGetProperty   - возвращает значение свойства, sp_OAGetProperty - устанавливает значение свойства,  sp_OAMethod   - вызывает метод, 
sp_OAGetErrorInfo   - возвращает сведения о последней возникшей ошибке
Когда объект больше не нужен, вызов хранимой процедуры sp_OADestroy позволяет   освободить память, удалив объект, созданный хранимой процедурой sp_OACreate.
Создаем процедуру, в которой подсчитаем размер свободного пространства на диске
Запускаем нашу процедуру  и   видим что все работает
declare  @TotalSpace float
   , @FreeSpace   float
   , @Dif   float
   , @DrivePath   varchar(1000)
SET  @DrivePath =   'C:'
exec  dbo.DriveSpace
@DrivePath  
,
@TotalSpace  = @TotalSpace   out
,@FreeSpace  = @FreeSpace   out
select   @DrivePath  Drivepath  ,@FreeSpace/@TotalSpace*100  PCT_free,   @FreeSpace  FreeSpace,  @TotalSpace TotalSpace
Поскольку синтаксис SP_OACREATE нельзя признать самым удобным для написания сложных конструкций и их отладки,  
то рекомендуется вначале проверять работоспособность программных объектов, доступность их свойств и методов при помощи более специализированных средств например  power  shell.


