<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
实为转贴j9988+原创
begintransaction --playyuer原创
execsp_decrypt'AppSP_test'--j9988原创
rollbacktransaction--playyuer原创
or:或者直接用transaction把j9988包起来!
begintransaction
j9988
rollbacktransaction
/************* 解密存储过程**********
------------------------sql2000大于40000的-----------------
原作:j9988号:J老师
*/
alter PROCEDUREsp_decrypt(@objectNamevarchar(50))
AS
begin
begintransaction--addbyplayyuer
declare@objectname1varchar(100)
declare@sql1nvarchar(4000),@sql2nvarchar(4000),@sql3nvarchar(4000),@sql4nvarchar(4000),@sql5nvarchar(4000),@sql6nvarchar(4000),@sql7nvarchar(4000),@sql8nvarchar(4000),@sql9nvarchar(4000),@sql10nvarchar(4000)
DECLARE @OrigSpText1nvarchar(4000), @OrigSpText2nvarchar(4000),@OrigSpText3nvarchar(4000),@resultspnvarchar(4000)
declare @iint,@tbigint
declare@mint,@nint,@qint
set@m=(SELECTmax(colid)FROMsyscomments WHEREid=object_id(@objectName))
set@n=1
--getencrypteddata
createtable #temp(colidint,ctextvarbinary(8000))
insert#tempSELECTcolid,ctextFROMsyscomments WHEREid=object_id(@objectName)
set@sql1='ALTERPROCEDURE'+@objectName+'WITHENCRYPTIONAS'
--set@sql1='ALTERPROCEDURE'+@objectName+'WITHENCRYPTIONAS'
set@q=len(@sql1)
set@sql1=@sql1+REPLICATE('-',4000-@q)
select@sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
while@n<=@m
begin
SET@OrigSpText1=(SELECTctextFROM#temp WHEREcolid=@n)
set@objectname1=@objectname+'_t'
SET@OrigSpText3=(SELECTctextFROMsyscommentsWHEREid=object_id(@objectName)andcolid=@n)
if@n=1
begin
SET@OrigSpText2='CREATEPROCEDURE'+@objectName+'WITHENCRYPTIONAS'--
set@q=4000-len(@OrigSpText2)
set@OrigSpText2=@OrigSpText2+REPLICATE('-',@q)
end
else
begin
SET@OrigSpText2=REPLICATE('-',4000)
end
--startcounter
SET@i=1
--filltemporaryvariable
SET@resultsp=replicate(N'A',(datalength(@OrigSpText1)/2))
--loop
WHILE@i<=datalength(@OrigSpText1)/2
BEGIN
--reverseencryption(XORoriginal+bogus+bogusencrypted)
SET@resultsp=stuff(@resultsp,@i,1,NCHAR(UNICODE(substring(@OrigSpText1,@i,1))^
(UNICODE(substring(@OrigSpText2,@i,1))^
UNICODE(substring(@OrigSpText3,@i,1)))))
SET@i=@i+1
END
--droporiginalSP
--EXECUTE('dropPROCEDURE'+@objectName)
--removeencryption
--preservecase
SET@resultsp=REPLACE((@resultsp),'WITHENCRYPTION','') 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
实为转贴j9988+原创
begintransaction --playyuer原创
execsp_decrypt'AppSP_test'--j9988原创
rollbacktransaction--playyuer原创
or:或者直接用transaction把j9988包起来!
begintransaction
j9988
rollbacktransaction
/************* 解密存储过程**********
------------------------sql2000大于40000的-----------------
原作:j9988号:J老师
*/
alter PROCEDUREsp_decrypt(@objectNamevarchar(50))
AS
begin
begintransaction--addbyplayyuer
declare@objectname1varchar(100)
declare@sql1nvarchar(4000),@sql2nvarchar(4000),@sql3nvarchar(4000),@sql4nvarchar(4000),@sql5nvarchar(4000),@sql6nvarchar(4000),@sql7nvarchar(4000),@sql8nvarchar(4000),@sql9nvarchar(4000),@sql10nvarchar(4000)
DECLARE @OrigSpText1nvarchar(4000), @OrigSpText2nvarchar(4000),@OrigSpText3nvarchar(4000),@resultspnvarchar(4000)
declare @iint,@tbigint
declare@mint,@nint,@qint
set@m=(SELECTmax(colid)FROMsyscomments WHEREid=object_id(@objectName))
set@n=1
--getencrypteddata
createtable #temp(colidint,ctextvarbinary(8000))
insert#tempSELECTcolid,ctextFROMsyscomments WHEREid=object_id(@objectName)
set@sql1='ALTERPROCEDURE'+@objectName+'WITHENCRYPTIONAS'
--set@sql1='ALTERPROCEDURE'+@objectName+'WITHENCRYPTIONAS'
set@q=len(@sql1)
set@sql1=@sql1+REPLICATE('-',4000-@q)
select@sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
while@n<=@m
begin
SET@OrigSpText1=(SELECTctextFROM#temp WHEREcolid=@n)
set@objectname1=@objectname+'_t'
SET@OrigSpText3=(SELECTctextFROMsyscommentsWHEREid=object_id(@objectName)andcolid=@n)
if@n=1
begin
SET@OrigSpText2='CREATEPROCEDURE'+@objectName+'WITHENCRYPTIONAS'--
set@q=4000-len(@OrigSpText2)
set@OrigSpText2=@OrigSpText2+REPLICATE('-',@q)
end
else
begin
SET@OrigSpText2=REPLICATE('-',4000)
end
--startcounter
SET@i=1
--filltemporaryvariable
SET@resultsp=replicate(N'A',(datalength(@OrigSpText1)/2))
--loop
WHILE@i<=datalength(@OrigSpText1)/2
BEGIN
--reverseencryption(XORoriginal+bogus+bogusencrypted)
SET@resultsp=stuff(@resultsp,@i,1,NCHAR(UNICODE(substring(@OrigSpText1,@i,1))^
(UNICODE(substring(@OrigSpText2,@i,1))^
UNICODE(substring(@OrigSpText3,@i,1)))))
SET@i=@i+1
END
--droporiginalSP
--EXECUTE('dropPROCEDURE'+@objectName)
--removeencryption
--preservecase
SET@resultsp=REPLACE((@resultsp),'WITHENCRYPTION','') 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>