Pošto i sam imam nekoliko procedura koje ću kasnije zaštititi morao sam da napravim isto to što tebi treba. Evo čistog T-SQL koda koji, koliko sam mogao da proverim, radi. Nadam se da nije kasno
Code:
declare @text nvarchar(max)
declare @ObjectIDOld int
declare @ObjectID int
declare @ProcedureStart int
declare @SPText nvarchar(max)
declare c cursor
for
select ID, [ctext] from dbo.syscomments order by id, colid
open c
fetch next from c
into @ObjectID, @text
select @ObjectIDOld = @ObjectID
while (@@fetch_status = 0)
begin
select @SPText=''
while (@ObjectIDOld = @ObjectID and @@fetch_status = 0)
begin
select @SPText = @SPText + @text
print str(len(@sptext))
fetch next from c
into @ObjectID, @text
end
select @ProcedureStart = Patindex('create PROCEDURE', @SPText)
if @ProcedureStart >= 0
begin
declare @AsStart int
select @AsStart = Patindex(N'%[^0-9A-Z]as[^0-9A-Z]%', @SPText)
if @AsStart > 0
begin
select @SPText = replace(@SPText, 'create PROCEDURE', 'Alter procedure')
select @SPText = left(@SPText, @AsStart - 1)
+ ' With encryption as '
+ right(@spText, len(@SPText) - @AsStart - 1)
exec (@SPText)
end
end
select @ObjectIDOld = @ObjectID
end
close c
deallocate c
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu