解密WITHENCRYPTION存储过程

来源:互联网 发布:淘宝店价值评估 编辑:程序博客网 时间:2024/05/16 03:45
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
 
create PROCEDUREDecryptObject(@objectNamevarchar(50)) 
WITH  ENCRYPTION AS 
begin  
 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 
 DECLARE@tablenamevarchar(255)  --触发器所对应的表名 
 DECLARE@trigtypevarchar(6)     --触发器类型 
 DECLARE@typechar(1)            --对象类型:P-procedure;V-View;T-trigger 
 DECLARE@bbbit 
 
 select@i=count(1) fromsysobjectswherename=@objectName 
 if@i=0 
 begin 
 print'Object'+@objectName+'isntexist!'--对象不存在 
 return 
 end 

 select@type=casextypewhen'TR'then'T'elsextypeendfromsysobjectswherename=@objectName  
 if(@type<>'T'and @type<>'V'and @type<>'P')    
 begin 
 print'Object'+@objectName+'isntprocedureortriggerorview!'--没有所需要的对象类型 
 return 
 end 

 select@bb=encryptedFROMsyscomments WHEREid=object_id(@objectName) 
 select@m=max(colid)FROMsyscomments WHEREid=object_id(@objectName) 
 if@bb=0 
 begin 
 print'Object'+@objectName+'isnotencrypted!'--对象没有加密 
 return 
 end 

 createtable #temp(colidint,ctextvarbinary(8000)) 
 createtable #tempresult(cctextnvarchar(4000)) 
 insert#tempSELECTcolid,ctextFROMsyscomments WHEREid=object_id(@objectName)--getencrypteddata    将加密信息存储于临时表中  
 IF@type='T'--如果是触发子,则取得它的表名和类型 
 BEGIN 
 SET@tablename=(SELECTsysobjects_1.nameFROMdbo.sysobjectsINNERJOINdbo.sysobjectssysobjects_1ONdbo.sysobjects.parent_obj=sysobjects_1.idWHERE(dbo.sysobjects.type='TR')AND(dbo.sysobjects.name=@ObjectName)) 
 SET@trigtype=(SELECTCASEWHENdbo.sysobjects.deltrig>0THEN'DELETE'WHENdbo.sysobjects.instrig>0THEN'INSERT'WHENdbo.sysobjects.updtrig>0THEN'UPDATE'END FROMdbo.sysobjectsINNERJOIN dbo.sysobjectssysobjects_1ONdbo.sysobjects.parent_obj=sysobjects_1.id WHERE(dbo.sysobjects.type='TR')AND(dbo.sysobjects.name=@ObjectName)) 
 END 

 SET@sql1=case@type--为修改原有的对象内容准备ALTER语句 共4页  1   
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>