|M| 如何让SQL数据库的每一步操作自动生成SQL语句
如:我表 
 tab1 
 id      name 
 1         A 
 我更改为 
 id      name 
 1         B 
 自动生成语句 
 update   tab1   set   name=B   where   id=1 
 其他的添加和删除也有相应的SQL 
 让他们存在一个 
 tab2中 
 如 
 id   sql 
 1      update   tab1   set   name=B   where   id=1 
 ...   
 谢谢
------解决方案--------------------
1、看sql的事件探查器是不是你要的 
 2、可以考虑用触发器 
------解决方案--------------------
关于触发器实现,找了个以前的贴子,基本上回答的比较好 
 http://topic.csdn.net/t/20040804/23/3243457.html 
------解决方案--------------------
只能在每个表上都建立触发器
------解决方案--------------------
create   table   TbLog(    
   Id   int   not   null   IDENTITY(1,1),    
   EvTime   datetime   not   null   default   (getdate()),                   --访问时间    
   Sql   varchar(3000),                                                                         --执行的Sql语句    
   UserId   varchar(50)   not   null   default   (sUSER_sname()),     --连接的时候使用的哪个Sql登陆用户          
   HostName   varchar(50)   not   null   default   (host_name()),     --客户端的机器名                            
   Ip   varchar(50),                                                                               --客户端的IP                                    
   LoginId   varchar(50),                                                                     --客户端的登陆用户(OS的用户)    
   AppName   varchar(50)   not   null   default(App_Name()),           --是从查询分析器,还是应用程序来执行的                  
   OpType   int,                 --执行的是Select,Update,还是Delete操作              
   RowCnt   int,                 --影响了多少行数据                                              
   Trans     bit                   --是否启动了事务                                                
   )    
   go          
   --测试表    
   create   table   tbTest(    
   a   int,    
   b   varchar(10)    
   )    
   go          
   --触发器    
   create   trigger   tr_tbTest   on   tbTest    
   for   insert,delete,update    
   as          
   --RowCnt    
   declare   @Rows   int    
   set   @Rows=@@rowcount          
   set   nocount   on          
   --Sql    
   create   table   #t   (    
   EventType             varchar(20),    
   Parameters   int,    
   EventInfo   varchar(3000)    
   )          
   insert   #t   exec( 'DBCC   INPUTBUFFER(@@SPID) ')          
   --OpType    
   declare   @OpType   int    
   set   @OpType=2                   --update    
   if   not   exists   (select   1   from   inserted)   set   @OpType=3                   --delete    
   if   not   exists   (select   1   from   deleted)   set   @OpType=1                   --delete          
   --Trans    
   declare   @Trans   bit    
   if   @@TRANCOUNT> 0    
         set   @Trans=1    
   else    
         set   @Trans=0          
   --insert    
   insert   tbLog   (    
   Sql,    
   OpType,    
   RowCnt,    
   Trans    
   )    
   select   EventInfo,    
   @OpType,    
   @Rows,    
   @Trans    
   from   #t          
   go          
   --先在企业管理器输入两条记录    
   --a     b    
   --1     1    
   --2     2          
   --再执行语句:    
   insert   tbtest    
   values(3, '3 ')    
   go          
   insert   tbtest    
   select   a+3,b+ '3 '   from   tbtest