Создать скрипт базы данных путём запроса
Falk0ner, вс, 06/07/2008 - 15:34.
Создать скрипт базы данных путём запроса
DECLARE
@SQL int,
@SP int,
@i int, @j int, @s varchar(200), @k int, @l sysname,
@ERROR int,
@Source varchar(8000),
@Description varchar(8000)
--©Drkb v.3(2007): <a href="http://www.drkb.ru
" title="www.drkb.ru
">www.drkb.ru
</a> exec @error = sp_OACreate 'SQLDMO.SQLServer', @SQL out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
exec @error = sp_OASetProperty @SQL, 'LoginSecure ', 'TRUE'
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
exec @error = sp_OAMethod @SQL, 'Connect(".")'
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").DatabaseRoles'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").DatabaseRoles.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
if left(@l,3) <> 'db_'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Defaults'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Defaults.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").FullTextCatalogs'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0 begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").FullTextCatalogs.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
wh
ile @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Rules'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Rules.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").StoredProcedures'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").StoredProcedures.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +LTRIM(STR(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
if left(@l,3) <> 'dt_'
begin
set @s='Item(' +LTRIM(STR(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").UserDefinedDatatypes'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").UserDefinedDatatypes.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Descripti
on,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").UserDefinedFunctions'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").UserDefinedFunctions.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out -- имя пользовательской функции
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Users'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Users.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out -- имя пользователя
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Views'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Views.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
if left(@l,3) <> 'sys'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Descrip
tion OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Tables'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Tables.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
if left(@l,3) <> 'dt_' and left(@l,3) <> 'sys'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",,6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
exec @error = sp_OADestroy @SQL
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
@SQL int,
@SP int,
@i int, @j int, @s varchar(200), @k int, @l sysname,
@ERROR int,
@Source varchar(8000),
@Description varchar(8000)
--©Drkb v.3(2007): <a href="http://www.drkb.ru
" title="www.drkb.ru
">www.drkb.ru
</a> exec @error = sp_OACreate 'SQLDMO.SQLServer', @SQL out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
exec @error = sp_OASetProperty @SQL, 'LoginSecure ', 'TRUE'
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
exec @error = sp_OAMethod @SQL, 'Connect(".")'
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").DatabaseRoles'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").DatabaseRoles.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
if left(@l,3) <> 'db_'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Defaults'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Defaults.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").FullTextCatalogs'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0 begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").FullTextCatalogs.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
wh
ile @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Rules'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Rules.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").StoredProcedures'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").StoredProcedures.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +LTRIM(STR(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
if left(@l,3) <> 'dt_'
begin
set @s='Item(' +LTRIM(STR(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").UserDefinedDatatypes'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").UserDefinedDatatypes.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Descripti
on,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").UserDefinedFunctions'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").UserDefinedFunctions.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out -- имя пользовательской функции
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Users'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Users.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out -- имя пользователя
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source out, @Description out
print ISNULL(@Source,'')+', '+ ISNULL(@Description,'')
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Views'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Views.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
if left(@l,3) <> 'sys'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Descrip
tion OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
set @s='Databases("'+DB_NAME()+'").Tables'
exec @error = sp_OAGetProperty @SQL, @s, @SP out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @s='Databases("'+DB_NAME()+'").Tables.Count'
exec @error = sp_OAGetProperty @SQL, @s, @j out
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
set @i=1
while @i<=@j
begin
set @s='Item(' +ltrim(str(@i))+ ').Name'
exec @error = sp_OAGetProperty @SP, @s, @l out
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
if left(@l,3) <> 'dt_' and left(@l,3) <> 'sys'
begin
set @s='Item(' +ltrim(str(@i))+ ').Script(266663,"'+@Path+'",,6)'
exec @error = sp_OAMethod @SP, @s, @Description out
print @Description
if @error<>0
begin
exec sp_OAGetErrorInfo @SP, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
end
set @i=@i+1
end
set @SP = null
exec @error = sp_OADestroy @SQL
if @error<>0
begin
exec sp_OAGetErrorInfo @SQL, @Source OUT, @Description OUT
print isnull(@Source,'')+', '+ isnull(@Description,'')
end
Отправить комментарий