澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

破解函数,快速刷新视图

DECLARE @tableNames varchar(500)
SET @tableNames='xxx,DB2, '   -- 关键此处填写要求刷新视图的数据库名称

列表出有数据的表:

 

DECLARE @i_start int
SET @i_start=1;

select name from sysobjects o where type='u' and exists ( select * from sysindexes where id=o.id and indid<2 and rows>0 )

 --破解函数,进程,触发器,视图.只限于SQLSELacrosseVE大切诺基二〇〇一   
    
  --作者:J9988--  
  --调用示例   
    
  --解密钦命期存款款和储蓄进程   
  exec   sp_decrypt   'AppSP_test'   
    
  --对富有的仓库储存进度解密   
  declare   tb   cursor   for   
  select   name   from   sysobjects   where   xtype='P'   and   status>0   
    
  declare   @name   sysname   
  open   tb   
  fetch   next   from   tb   into   @name   
  while   @@fetch_status=0   
  begin   
  print   '-------存款和储蓄进程   [' @name ']   -----------'   

DECLARE @i_end int
SET @i_end = CHARINDEX(',', @tableNames, @i_start);

 

  exec   sp_decrypt   @name   
  fetch   next   from   tb   into   @name   
  end  
 
  close   tb  --关闭游标  
  deallocate   tb   --删除游标 
 
    
  if   exists   (select * from  dbo.sysobjects where id=object_id(N'[dbo].[sp_decrypt]') and  OBJECTPROPERTY(id,N'IsProcedure') =1)   
  drop procedure [dbo].[sp_decrypt]   
  GO   
    
  CREATE  PROCEDURE sp_decrypt(@objectName   varchar(50))   
  AS   
  begin   
  set   nocount   on   
  --CSDN:j9988   copyright:2004.04.15     
  --V3.1     
  --破解字节不受限定,适用于SQLSEPRADOVE福特Explorer二〇〇〇存款和储蓄进度,函数,视图,触发器   
  --改正上生机勃勃版视图触发器无法科学解密错误   
  --开掘存错,请E_MAIL:CSDNj9988@tom.com   
  begin   tran   
  declare   @objectname1   varchar(100),@orgvarbin   varbinary(8000)   
  declare   @sql1   nvarchar(4000),@sql2   varchar(8000),@sql3   nvarchar(4000),@sql4   nvarchar(4000)   
  DECLARE     @OrigSpText1   nvarchar(4000),     @OrigSpText2   nvarchar(4000)   ,   @OrigSpText3   nvarchar(4000),   @resultsp   nvarchar(4000)   
  declare     @i   int,@status   int,@type   varchar(10),@parentid   int   
  declare   @colid   int,@n   int,@q   int,@j   int,@k   int,@encrypted   int,@number   int   
  select   @type=xtype,@parentid=parent_obj   from   sysobjects   where   id=object_id(@ObjectName)   
    
  create   table     #temp(number   int,colid   int,ctext   varbinary(8000),encrypted   int,status   int)   
  insert   #temp   SELECT   number,colid,ctext,encrypted,status   FROM   syscomments     WHERE   id   =   object_id(@objectName)   
  select   @number=max(number)   from   #temp   
  set   @k=0   
    
  while   @k<=@number     
  begin   
  if   exists(select   1   from   syscomments   where   id=object_id(@objectname)   and   number=@k)   
  begin   
  if   @type='P'   
  set   @sql1=(case   when   @number>1   then   'ALTER   PROCEDURE   '    @objectName    ';' rtrim(@k) '   WITH   ENCRYPTION   AS   '   
                                                      else   'ALTER   PROCEDURE   '    @objectName '   WITH   ENCRYPTION   AS   '   
                                                      end)   
    
  if   @type='TR'   
  begin   
  declare   @parent_obj   varchar(255),@tr_parent_xtype   varchar(10)   
  select   @parent_obj=parent_obj   from   sysobjects   where   id=object_id(@objectName)   
  select   @tr_parent_xtype=xtype   from   sysobjects   where   id=@parent_obj   
  if   @tr_parent_xtype='V'   
  begin   
  set   @sql1='ALTER   TRIGGER   ' @objectname '   ON   ' OBJECT_NAME(@parentid) '   WITH   ENCRYPTION   INSTERD   OF   INSERT   AS   PRINT   1   '   
  end   
  else   
  begin   
  set   @sql1='ALTER   TRIGGER   ' @objectname '   ON   ' OBJECT_NAME(@parentid) '   WITH   ENCRYPTION   FOR   INSERT   AS   PRINT   1   '   
  end   
    
  end   
  if   @type='FN'   or   @type='TF'   or   @type='IF'   
  set   @sql1=(case   @type   when   'TF'   then     
  'ALTER   FUNCTION   '    @objectName '(@a   char(1))   returns   @b   table(a   varchar(10))   with   encryption   as   begin   insert   @b   select   @a   return   end   '   
  when   'FN'   then   
  'ALTER   FUNCTION   '    @objectName '(@a   char(1))   returns   char(1)   with   encryption   as   begin   return   @a   end'   
  when   'IF'   then   
澳门皇冠赌场,  'ALTER   FUNCTION   '    @objectName '(@a   char(1))   returns   table   with   encryption   as   return   select   @a   as   a'   
  end)   
    
  if   @type='V'   
  set   @sql1='ALTER   VIEW   ' @objectname '   WITH   ENCRYPTION   AS   SELECT   1   as   f'   
    
  set   @q=len(@sql1)   
  set   @sql1=@sql1 REPLICATE('-',4000-@q)   
  select   @sql2=REPLICATE('-',8000)   
  set   @sql3='exec(@sql1'   
  select   @colid=max(colid)   from   #temp   where   number=@k     
  set   @n=1   
  while   @n<=CEILING(1.0*(@colid-1)/2)   and   len(@sQL3)<=3996   
  begin     
  set   @sql3=@sql3 ' @'   
  set   @n=@n 1   
  end   
  set   @sql3=@sql3 ')'   
  exec   sp_executesql   @sql3,N'@Sql1   nvarchar(4000),@   varchar(8000)',@sql1=@sql1,@=@sql2   
    
  end   
  set   @k=@k 1   
  end   
    
  set   @k=0   
  while   @k<=@number     
  begin   
    
  if   exists(select   1   from   syscomments   where   id=object_id(@objectname)   and   number=@k)   
  begin   
  select   @colid=max(colid)   from   #temp   where   number=@k     
  set   @n=1   
    
  while   @n<=@colid   
  begin   
  select   @OrigSpText1=ctext,@encrypted=encrypted,@status=status   FROM   #temp     WHERE   colid=@n   and   number=@k   
    
  SET   @OrigSpText3=(SELECT   ctext   FROM   syscomments   WHERE   id=object_id(@objectName)   and   colid=@n   and   number=@k)   
  if   @n=1   
  begin   
  if   @type='P'   
  SET   @OrigSpText2=(case   when   @number>1   then   'CREATE   PROCEDURE   '    @objectName    ';' rtrim(@k) '   WITH   ENCRYPTION   AS   '   
                                                else   'CREATE   PROCEDURE   '    @objectName    '   WITH   ENCRYPTION   AS   '   
                                                end)   
    
    
  if   @type='FN'   or   @type='TF'   or   @type='IF'   
  SET   @OrigSpText2=(case   @type   when   'TF'   then     
  'CREATE   FUNCTION   '    @objectName '(@a   char(1))   returns   @b   table(a   varchar(10))   with   encryption   as   begin   insert   @b   select   @a   return   end   '   
  when   'FN'   then   
  'CREATE   FUNCTION   '    @objectName '(@a   char(1))   returns   char(1)   with   encryption   as   begin   return   @a   end'   
  when   'IF'   then   
  'CREATE   FUNCTION   '    @objectName '(@a   char(1))   returns   table   with   encryption   as   return   select   @a   as   a'   
  end)   
    
  if   @type='TR'     
  begin   
    
  if   @tr_parent_xtype='V'   
  begin   
  set   @OrigSpText2='CREATE   TRIGGER   ' @objectname '   ON   ' OBJECT_NAME(@parentid) '   WITH   ENCRYPTION   INSTEAD   OF   INSERT   AS   PRINT   1   '   
  end   
  else   
  begin   
  set   @OrigSpText2='CREATE   TRIGGER   ' @objectname '   ON   ' OBJECT_NAME(@parentid) '   WITH   ENCRYPTION   FOR   INSERT   AS   PRINT   1   '   
  end   
    
  end   
    
  if   @type='V'   
  set   @OrigSpText2='CREATE   VIEW   ' @objectname '   WITH   ENCRYPTION   AS   SELECT   1   as   f'   
    
  set   @q=4000-len(@OrigSpText2)   
  set   @OrigSpText2=@OrigSpText2 REPLICATE('-',@q)   
  end   
  else   
  begin   
  SET   @OrigSpText2=REPLICATE('-',   4000)   
  end   
  SET   @i=1   
    
  SET   @resultsp   =   replicate(N'A',   (datalength(@OrigSpText1)   /   2))   
    
  WHILE   @i<=datalength(@OrigSpText1)/2   
  BEGIN   
    
  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   
  set   @orgvarbin=cast(@OrigSpText1   as   varbinary(8000))   
  set   @resultsp=(case   when   @encrypted=1     
                                          then   @resultsp     
                                          else   convert(nvarchar(4000),case   when   @status&2=2   then   uncompress(@orgvarbin)   else   @orgvarbin   end)   
                                end)   
  print   @resultsp   
    
  set   @n=@n 1   
    
  end   
    
  end   
  set   @k=@k 1   
  end   
    
  drop   table   #temp   
  rollback   tran   
  end 

DECLARE @tableName varchar(30)

OR

 

declare @s nvarchar(1000) -- 注意此处改为nvarchar(1000)

select o.name from sysobjects o,sysindexes i where o.type='u' and i.id=o.id and i.indid<2 and i.rows>0

 

WHILE @i_end>0
BEGIN
  SET @tableName= LTrim(RTrim(SUBSTRING(@tableNames, @i_start, @i_end-@i_start)))
  --select @tableName

  

 

  if exists(select * from master..sysdatabases where name=@tableName)
  begin
    print '更新 数据库[' @tableName ']不无视图'

 

 

本文由澳门皇冠金沙网站发布于数据库研究,转载请注明出处:破解函数,快速刷新视图