Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE GateStore
- GO
- if @@ERROR=0 SET NOEXEC OFF else SET NOEXEC ON
- GO
- exec sp_configure 'clr enabled', 1
- reconfigure
- GO
- ALTER DATABASE CURRENT SET TRUSTWORTHY ON
- GO
- if @@ERROR=0 SET NOEXEC OFF else SET NOEXEC ON
- GO
- set nocount on
- declare @AssemblyName varchar(100) = 'SQLfuncs'
- declare @objId int
- declare @objName varchar(100)
- declare @objType varchar(2)
- declare @script varchar(2014)
- declare @restable table(OperationResult varchar(4096))
- insert @restable values('delete of objects on DataBase "'+DB_NAME()+'" from assembly "'+@AssemblyName+'"')
- declare CLR_Deleter cursor local forward_only
- for select
- SO.id as [InnerID]
- ,SO.name as [InnerName]
- ,SO.[type] as [InnerType]
- from dbo.sysobjects SO
- join sys.assembly_modules AM on AM.object_id = SO.id
- where AM.assembly_id in (select assembly_id from sys.assemblies where name=@AssemblyName)
- open CLR_Deleter
- fetch next from CLR_Deleter into @objId, @objName, @objType
- while @@FETCH_STATUS = 0
- begin
- -----------------------------------------------------------------------------------------------
- set @script=''
- if @objType in ('FS', 'FT') set @script = 'IF OBJECT_ID ('''+@objName+''', '''+@objType+''') IS NOT NULL DROP FUNCTION [dbo].['+@objName+']' else
- if @objType in ('PC') set @script = 'IF OBJECT_ID ('''+@objName+''', '''+@objType+''') IS NOT NULL DROP PROCEDURE [dbo].['+@objName+']'
- if @script<>''
- begin
- begin try
- EXECUTE (@script)
- insert @restable values('successful deleteing of the object: '+@objName+' ('+@objType+', '+CAST(@objId as varchar)+')')
- end try
- begin catch
- insert @restable values('Error deleteing of the object: '+@objName+' ('+@objType+', '+CAST(@objId as varchar)+')')
- end catch
- end
- else insert @restable values('Unknown object: '+@objName+' ('+@objType+', '+CAST(@objId as varchar)+')')
- -----------------------------------------------------------------------------------------------
- fetch next from CLR_Deleter into @objId, @objName, @objType
- end
- close CLR_Deleter;
- deallocate CLR_Deleter;
- ----select OperationResult from @restable
- print 'Удаление объектов для сборки "'+@AssemblyName+'" завершено'
- GO
- if Exists(SELECT * FROM sys.assemblies where Name='SQLfuncs.XmlSerializers')
- DROP ASSEMBLY [SQLfuncs.XmlSerializers]
- GO
- if Exists(SELECT * FROM sys.assemblies where Name='SQLfuncs')
- DROP ASSEMBLY [SQLfuncs]
- GO
- if Exists(SELECT * FROM sys.assemblies where Name='newtonsoft.json')
- DROP ASSEMBLY [newtonsoft.json]
- GO
- if Exists(SELECT * FROM sys.assemblies where Name='System.Runtime.Serialization')
- DROP ASSEMBLY [System.Runtime.Serialization]
- GO
- if Exists(SELECT * FROM sys.assemblies where Name='System.Net.Http')
- DROP ASSEMBLY [System.Net.Http]
- GO
- print '---- закончено удаление функций и сборок -----'
- GO
- if not Exists(SELECT * FROM sys.assemblies where Name='System.Net.Http')
- begin
- CREATE ASSEMBLY [System.Net.Http] AUTHORIZATION [dbo] FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Net.Http.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка System.Net.Http успешно создана'
- end
- else
- BEGIN TRY
- ALTER ASSEMBLY [System.Net.Http] FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Net.Http.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка System.Net.Http успешно обновлена'
- END TRY
- BEGIN CATCH
- print '--> сборка System.Net.Http идентична предыдущей и не требует обновления'
- END CATCH
- GO
- if not Exists(SELECT * FROM sys.assemblies where Name='System.Runtime.Serialization')
- begin
- CREATE ASSEMBLY [System.Runtime.Serialization] AUTHORIZATION [dbo] FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Runtime.Serialization.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка System.Runtime.Serialization успешно создана'
- end
- else
- BEGIN TRY
- ALTER ASSEMBLY [System.Runtime.Serialization] FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Runtime.Serialization.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка System.Runtime.Serialization успешно обновлена'
- END TRY
- BEGIN CATCH
- print '--> сборка System.Runtime.Serialization идентична предыдущей и не требует обновления'
- END CATCH
- GO
- if not Exists(SELECT * FROM sys.assemblies where Name='newtonsoft.json')
- begin
- CREATE ASSEMBLY [newtonsoft.json] FROM 'D:\CLR\Newtonsoft.Json.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка Newtonsoft.Json успешно создана'
- end
- else
- BEGIN TRY
- ALTER ASSEMBLY [newtonsoft.json] FROM 'D:\CLR\Newtonsoft.Json.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка Newtonsoft.Json успешно обновлена'
- END TRY
- BEGIN CATCH
- print '--> сборка Newtonsoft.Json идентична предыдущей и не требует обновления'
- END CATCH
- GO
- if not Exists(SELECT * FROM sys.assemblies where Name='SQLfuncs')
- begin
- CREATE ASSEMBLY [SQLfuncs] FROM 'D:\CLR\SQLfuncs.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка SQLfuncs успешно создана'
- end
- else
- BEGIN TRY
- ALTER ASSEMBLY [SQLfuncs] FROM 'D:\CLR\SQLfuncs.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка SQLfuncs успешно обновлена'
- END TRY
- BEGIN CATCH
- print '--> сборка SQLfuncs идентична предыдущей и не требует обновления'
- END CATCH
- GO
- if not Exists(SELECT * FROM sys.assemblies where Name='SQLfuncs.XmlSerializers')
- begin
- CREATE ASSEMBLY [SQLfuncs.XmlSerializers] FROM 'D:\CLR\SQLfuncs.XmlSerializers.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка SQLfuncs.XmlSerializers успешно создана'
- end
- else
- BEGIN TRY
- ALTER ASSEMBLY [SQLfuncs.XmlSerializers] FROM 'D:\CLR\SQLfuncs.XmlSerializers.dll' WITH PERMISSION_SET = UNSAFE
- print '--> сборка SQLfuncs.XmlSerializers успешно обновлена'
- END TRY
- BEGIN CATCH
- print '--> сборка SQLfuncs.XmlSerializers идентична предыдущей и не требует обновления'
- END CATCH
- GO
- CREATE FUNCTION [dbo].[CLR_HttpGetBlobNew](@url [nvarchar](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[ReadBlob]
- GO
- IF OBJECT_ID ('CLR_HttpGetBlobNew', 'FS') IS NOT NULL
- print 'CLR_HttpGetBlobNew ready'
- GO
- CREATE FUNCTION [dbo].[CLR_HttpGet](@url [nvarchar](max), @headers [nvarchar](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[HttpGet]
- GO
- IF OBJECT_ID ('CLR_HttpGet', 'FS') IS NOT NULL
- print 'CLR_HttpGet'
- GO
- CREATE FUNCTION [dbo].[CLR_HttpGetBlobMethod](@url [nvarchar](max),@method [nvarchar](max),@headers [nvarchar](max),@parameters [nvarchar](max),@contenttype [nvarchar](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[ReadBlobMethod]
- GO
- IF OBJECT_ID ('CLR_HttpGetBlobMethod', 'FS') IS NOT NULL
- print 'CLR_HttpGetBlobMethod ready'
- GO
- CREATE FUNCTION [dbo].[CLR_HttpGetBlobMethodEx](@url [nvarchar](max),@method [nvarchar](max),@headers [nvarchar](max),@parameters [nvarchar](max),@contenttype [nvarchar](max))
- RETURNS TABLE (result varbinary(max), debug nvarchar(max), header nvarchar(max))
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[ReadBlobMethodEx]
- GO
- IF OBJECT_ID ('CLR_HttpGetBlobMethodEx', 'FT') IS NOT NULL
- print 'CLR_HttpGetBlobMethodEx ready'
- GO
- -- Для совместимости. Новая AsWin1251 ------------
- CREATE FUNCTION [dbo].[CLR_UnicodeToUTF8](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[AsWin1251]--[UnicodeToUTF8]
- GO
- IF OBJECT_ID ('CLR_UnicodeToUTF8', 'FS') IS NOT NULL
- print 'CLR_UnicodeToUTF8 ready'
- GO
- -- Для совместимости. Новая AsUTF8 ------------
- CREATE FUNCTION [dbo].[CLR_UTF8ToUnicode](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[AsUTF8]--[UTF8ToUnicode]
- GO
- IF OBJECT_ID ('CLR_UTF8ToUnicode', 'FS') IS NOT NULL
- print 'CLR_UTF8ToUnicode ready'
- GO
- CREATE FUNCTION [dbo].[CLR_AsWin1251](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[AsWin1251]
- GO
- IF OBJECT_ID ('CLR_AsWin1251', 'FS') IS NOT NULL
- print 'CLR_AsWin1251 ready'
- GO
- CREATE FUNCTION [dbo].[CLR_AsUTF8](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[AsUTF8]
- GO
- IF OBJECT_ID ('CLR_AsUTF8', 'FS') IS NOT NULL
- print 'CLR_AsUTF8 ready'
- GO
- CREATE FUNCTION [dbo].[CLR_JSONtoXML](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[JSONtoXML]
- GO
- IF OBJECT_ID ('CLR_JSONtoXML', 'FS') IS NOT NULL
- print 'CLR_JSONtoXML ready'
- GO
- CREATE FUNCTION [dbo].[CLR_XMLtoJSON](@source [nvarchar](max)) --------------------------------------------------------
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[XMLtoJSON]
- GO
- IF OBJECT_ID ('CLR_XMLtoJSON', 'FS') IS NOT NULL
- print 'CLR_XMLtoJSON ready'
- GO
- CREATE FUNCTION [dbo].[CLR_URLEncode](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[URLEncode]
- GO
- IF OBJECT_ID ('CLR_URLEncode', 'FS') IS NOT NULL
- print 'CLR_URLEncode ready'
- GO
- CREATE FUNCTION [dbo].[CLR_URLDecode](@source [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[URLDecode]
- GO
- IF OBJECT_ID ('CLR_URLDecode', 'FS') IS NOT NULL
- print 'CLR_URLDecode ready'
- GO
- CREATE FUNCTION [dbo].[CLR_EmarsysRequest](@Method [nvarchar](4), @URI [nvarchar](1024), @json [nvarchar](max))
- RETURNS TABLE (result nvarchar(max), error nvarchar(max))
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[Request]
- GO
- IF OBJECT_ID ('CLR_EmarsysRequest', 'FT') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_EmarsysRequest ready'
- GO
- CREATE FUNCTION [dbo].[CLR_EmarsysRequestEx](@Method [nvarchar](4), @User [nvarchar](256), @Password [nvarchar](256), @URI [nvarchar](1024), @json [nvarchar](max))
- RETURNS TABLE (result nvarchar(max), error nvarchar(max))
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[RequestEx]
- GO
- IF OBJECT_ID ('CLR_EmarsysRequestEx', 'FT') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_EmarsysRequestEx ready'
- GO
- CREATE FUNCTION [dbo].[CLR_SaveToFile](@Data [nvarchar](max), @Filename [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[SaveToFile]
- GO
- IF OBJECT_ID ('CLR_SaveToFile', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_SaveToFile ready'
- GO
- -- select dbo.CLR_SaveToFile('Текст для сохранения','C:\tmp\FileName.txt')
- CREATE FUNCTION [dbo].[CLR_SaveBinaryToFile](@Data [varbinary](max), @Filename [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[SaveBinaryToFile]
- GO
- IF OBJECT_ID ('CLR_SaveBinaryToFile', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_SaveBinaryToFile ready'
- GO
- CREATE FUNCTION [dbo].[CLR_GZipToString](@Data [varbinary](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[GZipToString]
- GO
- IF OBJECT_ID ('CLR_GZipToString', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_GZipToString ready'
- GO
- CREATE FUNCTION [dbo].[CLR_Levis_PingPong]()
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[Levis_PingPong]
- GO
- IF OBJECT_ID ('CLR_Levis_PingPong', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_Levis_PingPong'
- GO
- CREATE FUNCTION [dbo].[CLR_Levis_GetPackage](@package [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[Levis_GetPackage]
- GO
- IF OBJECT_ID ('CLR_Levis_GetPackage', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_Levis_GetPackage'
- GO
- CREATE FUNCTION [dbo].[CLR_Levis_PutPackage](@package [nvarchar](max))
- RETURNS nvarchar(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[Levis_PutPackage]
- GO
- IF OBJECT_ID ('CLR_Levis_PutPackage', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_Levis_PutPackage'
- GO
- print 'в данной сборке CLR_GetTextHTML отсутствует (закомментарен)'
- GO
- CREATE FUNCTION [dbo].[CLR_HttpGetBinary](@url [nvarchar](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.HTTPFunctions].[HttpGetBinary]
- GO
- IF OBJECT_ID ('CLR_HttpGetBinary', 'FS') IS NOT NULL
- print 'CLR_HttpGetBinary ready'
- GO
- CREATE FUNCTION [dbo].[CLR_HMACSHA1Encode](@base [nvarchar](max), @key [nvarchar](max))
- RETURNS varbinary(max)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.StringFunctions].[HMACSHA1Encode]
- GO
- IF OBJECT_ID ('HMACSHA1Encode', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'HMACSHA1Encode ready'
- GO
- CREATE FUNCTION [dbo].[CLR_TableReturnFunction](@params [nvarchar](max))
- RETURNS TABLE (DateCreate datetime, Body varbinary(max), Message nvarchar(max))
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.TestFunctions].[TableReturnFunction]
- GO
- IF OBJECT_ID ('CLR_TableReturnFunction', 'FT') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_TableReturnFunction ready'
- GO
- -- select [DateCreate],[Body],[Message] from dbo.CLR_TableReturnFunction('')
- CREATE PROCEDURE [dbo].[CLR_GetUsedDB]
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.TechFunctions].[GetUsedDB]
- GO
- IF OBJECT_ID ('CLR_GetUsedDB', 'PC') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_GetUsedDB ready'
- GO
- --exec dbo.CLR_GetUsedDB
- CREATE PROCEDURE [dbo].[CLR_TryClearMemory](@before bigint out, @after bigint out)
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.TechFunctions].[TryClearMemory]
- GO
- IF OBJECT_ID ('CLR_TryClearMemory', 'PC') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_TryClearMemory ready'
- GO
- CREATE PROCEDURE [dbo].[CLR_WriteLog](@message [nvarchar](max))
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.TechFunctions].[WriteLog]
- GO
- IF OBJECT_ID ('CLR_WriteLog', 'PC') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_WriteLog ready'
- GO
- CREATE FUNCTION [dbo].[CLR_WriteLogFunc](@message [nvarchar](max))
- RETURNS BIT
- WITH EXECUTE AS CALLER
- AS
- EXTERNAL NAME [SQLfuncs].[SQLfuncs.TechFunctions].[WriteLogFunc]
- GO
- IF OBJECT_ID ('CLR_WriteLogFunc', 'FS') IS NOT NULL -- ATTENTION on Type of function --
- print 'CLR_WriteLogFunc ready'
- GO
- GRANT EXECUTE ON [dbo].[CLR_Levis_GetPackage] TO [nav_gate]
- GRANT EXECUTE ON [dbo].[CLR_Levis_PingPong] TO [nav_gate]
- GRANT EXECUTE ON [dbo].[CLR_Levis_PutPackage] TO [nav_gate]
- GRANT EXECUTE ON [dbo].[CLR_HttpGetBlob] TO [mo2]
- GRANT EXECUTE ON [dbo].[CLR_HttpGetBlobNew] TO [mo2]
- GRANT EXECUTE ON [dbo].[CLR_HttpGetBlobMethod] TO [mo2]
- set nocount on
- declare @before bigint
- declare @after bigint
- exec dbo.CLR_TryClearMemory @before out, @after out
- grant exec on CLR_HttpGetBlobMethod to public
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement