精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何能更簡潔的記錄表歷史

數據庫 SQL Server 數據庫運維
很多時候,都需要對數據表進行歷史記錄。比如每修改一次表單,之前的表單數據都需要計入歷史。當表單比較多的時候,記錄歷史是一件比較麻煩的事情。有沒有通用點的辦法呢?于是,作者就想到了以下方案。在此與大家分享了,如果有更合適的或合理的建議,請回復本帖。

很多時候,都需要對數據表進行歷史記錄。比如每修改一次表單,之前的表單數據都需要計入歷史。當表單比較多的時候,記錄歷史是一件比較麻煩的事情。又要建日志表,又要寫存儲過程,又要寫頁面邏輯等等。有沒有通用點的辦法呢?最近做項目時碰到了,要求每次審核、退回等操作時就要記錄表歷史。于是,作者就想到了以下方案。在此與大家分享了,如果有更合適的或合理的建議,請回復本帖。

1)創建日志表

一個一個建表是一件煩躁的事,而且還容易出錯。那么,以下存儲過程就能批量建表了,還添加了LogCreateDate、LogDefaultFlag、LogPTID這3個字段。值得注意的是,創建表結構可以用以下語句“SELECT * Into tableName_Log FROM tableName”。如果只需要復制表結構,那就插入一行,再刪除就是。

SQL里面實現遍歷數據集不方便,不想用游標,于是采用了以下方式。具體存儲過程如下:

  1. USE [NbShop]    
  2. GO    
  3. /****** Object:  StoredProcedure [dbo].[CreateLogTable]    Script Date: 07/02/2011 12:54:32 ******/    
  4. SET ANSI_NULLS ON   
  5. GO    
  6. SET QUOTED_IDENTIFIER ON   
  7. GO    
  8. -- =============================================    
  9. -- Author:      LWQ    
  10. -- Create date: 2011-6-29    
  11. -- Description: 創建日志表(命名規則:表名+_Log)    
  12. -- =============================================    
  13. ALTER PROCEDURE [dbo].[CreateLogTable]    
  14. AS   
  15. BEGIN   
  16.     -- SET NOCOUNT ON added to prevent extra result sets from    
  17.    -- interfering with SELECT statements.    
  18.     SET NOCOUNT ON;    
  19.      
  20.     -- Insert statements for procedure here    
  21.     -------------------創建日志表------------------------------    
  22. declare @rows     int   
  23. declare @n        int   
  24. declare @tableName        varchar(100)    
  25. select @n=1    
  26.     SELECT     name   
  27.     INTO            [#tempTables]    
  28.     FROM         sys.sysobjects    
  29.     WHERE     (xtype = 'U 'AND (name NOT IN ('sysdiagrams''T_BasicTime''T_Attribute''T_AttributeType''T_BasicTime''T_City','T_CompeteForMeasu',     
  30.                           'T_DocumentTypeRestrictions''T_FormRelevance''T_HistroyShopAction''T_Notice''T_NoticeReceive''T_Organize''T_OrgType',     
  31.                           'T_Province''T_Role''T_RptShopStatus''T_UploadFile''T_UrlPrint'))    
  32.                           AND (name NOT LIKE '%flow%'AND (name NOT LIKE '%Control%'AND    
  33.                           (name NOT LIKE '%Menu%'AND (name NOT LIKE '%Node%'AND (name NOT LIKE '%Log%'AND (name NOT LIKE '%Event%'AND (name NOT LIKE '%Object%'AND    
  34.                           (name NOT LIKE '%Process%'AND (name NOT LIKE '%ShopStatus%'AND (name NOT LIKE '%Task%')     
  35.                           AND (name NOT LIKE '%ThirdParty%'AND (name NOT LIKE '%User%')    
  36.                           AND (name NOT LIKE '%order%')    
  37.     Select * from   #tempTables    
  38.     Select name into #tempCurrent  from #tempTables    
  39.     Delete from  #tempCurrent    
  40.      
  41.     select @rows = @@rowcount    
  42.     while @n <= @rows   
  43.     begin   
  44.       set @tableName=(Select  top 1  name from #tempTables     
  45.       Where name not in    
  46.       (select name from #tempCurrent))    
  47.       if(@tableName is not null)    
  48.       begin   
  49.         insert into #tempCurrent values(@tableName)    
  50.         if object_id(@tableName+'_Log'is not null    
  51.         begin   
  52.             print   '表'+  @tableName +'已存在,僅做數據更新處理'   
  53.             exec ('INSERT INTO'+ @tableName +'_Log SELECT * FROM '+@tableName)                  
  54.         end   
  55.         else   
  56.         begin   
  57.             exec ('SELECT * Into '+@tableName+'_Log FROM '+@tableName)    
  58.             print   '表'+  @tableName +'創建成功'   
  59.             exec ('alter   table   '+@tableName+'_Log   add   LogCreateDate   datetime')    
  60.             exec ('alter   table   '+@tableName+'_Log   add   LogDefaultFlag   int')    
  61.             exec ('alter   table   '+@tableName+'_Log   add   LogPTID   varchar(32)')    
  62. ----            if   col_length( @tableName+' ',   'LogCreateDate ')   is not   null     
  63. ----            begin    
  64. ----                exec ('ALTER   TABLE   '+@tableName+'   DROP   COLUMN   LogCreateDate')     
  65. ----                print '刪除'+@tableName+'的列LogCreateDate成功'    
  66. ----            end    
  67. ----            if(@tableName not in ('T_Shop','T_MeasurementAddress','T_TurnAround','T_IrisInstrumentHistory','T_ChainTurnApplication','T_TrainingNotice'))    
  68. ----            begin    
  69. ----                if   col_length( @tableName+' ',   'CreateDate ')   is not   null     
  70. ----                begin    
  71. ----                    exec ('ALTER   TABLE   '+@tableName+'   DROP   COLUMN   CreateDate ')    
  72. ----                    print '刪除'+@tableName+'的列CreateDate成功'    
  73. ----                end     
  74. ----            end    
  75.         end   
  76.     end   
  77.         select @n = @n + 1    
  78.     end   
  79.     drop table  #tempCurrent    
  80.     drop table  #tempTables    
  81. -------------------創建日志表------------------------------    
  82. END  

#p#

2)刪除日志表

在開發過程中,難免會對字段進行更改。于是刪除的存儲過程也得有。具體代碼如下:

  1. USE [NbShop]  
  2. GO  
  3. /****** Object:  StoredProcedure [dbo].[DropLogTable]    Script Date: 07/02/2011 12:54:29 ******/  
  4. SET ANSI_NULLS ON 
  5. GO  
  6. SET QUOTED_IDENTIFIER ON 
  7. GO  
  8. -- =============================================  
  9. -- Author:      LWQ  
  10. -- Create date: 2011-6-29  
  11. -- Description: 刪除日志表(_log)  
  12. -- =============================================  
  13. ALTER PROCEDURE [dbo].[DropLogTable]  
  14. AS 
  15. BEGIN 
  16.     -- SET NOCOUNT ON added to prevent extra result sets from  
  17.     -- interfering with SELECT statements.  
  18.     SET NOCOUNT ON;  
  19.  
  20.     -------------------刪除日志表------------------------------  
  21. declare @rowsIndex     int 
  22. declare @nIndex        int 
  23. declare @LogTableName        varchar(100)  
  24. select @nIndex=1  
  25.     SELECT     name 
  26.     INTO            #LogtempTables  
  27.     FROM         sys.sysobjects  
  28.     WHERE     (xtype = 'U 'AND (name like '%\_log' escape '\')    
  29.     Select * from #LogtempTables  
  30.     Select name into #LogtempCurrent  from #LogtempTables  
  31.     Delete from  #LogtempCurrent  
  32.     select @rowsIndex = (Select count(*) from   #LogtempTables)  
  33.     print   @rowsIndex  
  34.       
  35. while @nIndex <= @rowsIndex  
  36. begin 
  37.   set @LogTableName=(Select  top 1  name from #LogtempTables   
  38.   Where name not in   
  39.   (select name from #LogtempCurrent))  
  40.   if(@LogTableName IS NOT NULL)  
  41.   begin 
  42.     insert into #LogtempCurrent values(@LogTableName)  
  43.     print     'Drop table '+@LogTableName  
  44.     exec ('Drop table '+@LogTableName)  
  45.     print    '刪除'+@LogTableName+'成功' 
  46.   end 
  47.    
  48.   select @nIndex = @nIndex + 1  
  49. end 
  50. Drop table   #LogtempTables  
  51. Drop table   #LogtempCurrent  
  52. SELECT     name FROM         sys.sysobjects     WHERE     (xtype = 'U 'AND (name like '%\_log' escape '\')   
  53. -------------------刪除日志表------------------------------  
  54. END 

以上語句值得注意的是在查找以“_Log”結尾的表名的搜索條件,需要加上“escape '\'”。

3)記錄日志

日志表有了,還得記錄日志呢。為每個表寫個存儲過程會過于繁瑣,而且改動了就得跟著改動。就是碼農也吃不消。于是有了以下存儲過程,該存儲過程定義了7個參數,允許傳入存儲過程、表名、Where條件等。具體如下:

  1. USE [NbShop]  
  2. GO  
  3. /****** Object:  StoredProcedure [dbo].[RecordLog]    Script Date: 07/02/2011 12:54:07 ******/  
  4. SET ANSI_NULLS ON 
  5. GO  
  6. SET QUOTED_IDENTIFIER ON 
  7. GO  
  8.  
  9.  
  10. -- =============================================  
  11. -- Author:      LWQ  
  12. -- Create date: 2011-6-29  
  13. -- Description: 記錄日志  
  14. -- =============================================  
  15. ALTER PROCEDURE   [dbo].[RecordLog]  
  16.     @ObjectID varchar(32),                      ---門店ID  
  17.     @TableName varchar(100),                    ---表名  
  18.     @PTID varchar(32),                          ---PTID(階段ID),可選  
  19.     @PhasesID varchar(32),                      ---階段ID,可選  
  20.     @ProcedureName varchar(200),                ---存儲過程名稱,可選  
  21.     @InsertSQLWhere nvarchar(1000),                 ---主表的篩選條件  
  22.     @UpdateSQLWhere nvarchar(1000)                  ---主表的篩選條件  
  23. AS 
  24. BEGIN 
  25.     -- SET NOCOUNT ON added to prevent extra result sets from  
  26.     -- interfering with SELECT statements.  
  27.     SET NOCOUNT ON;  
  28.       
  29.     IF (@ProcedureName is not NULL)  
  30.     BEGIN 
  31.         exec ('exec('+@ProcedureName+''''+@ObjectID+''','''+@PTID+''','''+@PhasesID+''')')  
  32.     END 
  33.     ELSE IF(@InsertSQLWhere IS NOT NULL)  
  34.     BEGIN 
  35.         IF(@UpdateSQLWhere IS NOT NULL)  
  36.         Begin 
  37.             exec('Update '+ @tableName +'_Log Set LogDefaultFlag=0 ' +@UpdateSQLWhere)  
  38.         End 
  39.         Else 
  40.         Begin 
  41.             declare @UpdateExecSQL nvarchar(2000)  
  42.             Select @UpdateExecSQL='Update '+    @tableName +'_Log Set LogDefaultFlag=0 Where ' 
  43.             --------------判斷是否存在ObjectID列(門店ID)-----------------------------  
  44.             if @ObjectID IS NOT NULL AND col_length( @tableName+' ',   'ObjectID ')   is not   null   
  45.             BEGIN 
  46.                 Select @UpdateExecSQL=@UpdateExecSQL+' ObjectID='''+@ObjectID+''' ' 
  47.             END       
  48.             Else 
  49.             Begin 
  50.                 Select @UpdateExecSQL=@UpdateExecSQL+' ShopID='''+@ObjectID+''' ' 
  51.             END 
  52.             exec(@UpdateExecSQL)  
  53.         END 
  54.         exec('INSERT INTO '+    @tableName +'_Log SELECT *,getdate(),1,'''+@PTID+''' FROM '  + @tableName+' '+@InsertSQLWhere)  
  55.     END 
  56.     ELSE 
  57.     BEGIN 
  58.         declare @InsertSQL nvarchar(2000)  
  59.         declare @UpdateSQL nvarchar(2000)  
  60.         Declare @WhereCount int 
  61.         Select @WhereCount=0   
  62.           
  63.         Select @UpdateSQL='Update '+@tableName+'_Log Set LogDefaultFlag=0 ' 
  64.         select @InsertSQL='INSERT INTO '+   @tableName +'_Log SELECT *,getdate(),1,'''+@PTID+''' FROM '  + @tableName;  
  65.         --------------判斷是否存在DefaultFlag列-------------------------  
  66.         if   col_length( @tableName+' ',   'DefaultFlag ')   is not   null   
  67.         BEGIN 
  68.             select @InsertSQL=@InsertSQL+' Where DefaultFlag=1 ' 
  69.             Select @WhereCount=@WhereCount+1          
  70.         END 
  71.         --------------判斷是否存在ObjectID列(門店ID)-----------------------------  
  72.         if @ObjectID IS NOT NULL AND col_length( @tableName+' ',   'ObjectID ')   is not   null   
  73.         BEGIN 
  74.             IF(@WhereCount>0)  
  75.             BEGIN 
  76.                 select @InsertSQL=@InsertSQL+' AND ObjectID='''+@ObjectID+''' ' 
  77.                 Select @UpdateSQL=@UpdateSQL+' AND ObjectID='''+@ObjectID+''' ' 
  78.             END 
  79.             ELSE 
  80.             BEGIN 
  81.                 select @InsertSQL=@InsertSQL+' WHERE ObjectID='''+@ObjectID+''' ' 
  82.                 Select @UpdateSQL=@UpdateSQL+' WHERE ObjectID='''+@ObjectID+''' ' 
  83.             END 
  84.             Select @WhereCount=@WhereCount+1          
  85.         END 
  86.         --------------判斷是否存在ShopID列(門店ID)-----------------------------  
  87.         if @ObjectID IS NOT NULL AND col_length( @tableName+' ',   'ShopID ')   is not   null   
  88.         BEGIN 
  89.             IF(@WhereCount>0)  
  90.             BEGIN 
  91.                 select @InsertSQL=@InsertSQL+' AND ShopID='''+@ObjectID+''' ' 
  92.                 Select @UpdateSQL=@UpdateSQL+' AND ShopID='''+@ObjectID+''' ' 
  93.             END 
  94.             ELSE 
  95.             BEGIN 
  96.                 select @InsertSQL=@InsertSQL+' WHERE ShopID='''+@ObjectID+''' ' 
  97.                 Select @UpdateSQL=@UpdateSQL+' WHERE ShopID='''+@ObjectID+''' ' 
  98.             END 
  99.             Select @WhereCount=@WhereCount+1          
  100.         END 
  101.         --------------判斷是否存在PTID列(模版ID)-----------------------------  
  102.         if @PTID IS NOT NULL AND col_length( @tableName+' ',   'PTID ')   is not   null   
  103.         BEGIN 
  104.             IF(@WhereCount>0)  
  105.             BEGIN 
  106.                 select @InsertSQL=@InsertSQL+' AND PTID='''+@PTID+''' ' 
  107.             END 
  108.             ELSE 
  109.             BEGIN 
  110.                 select @InsertSQL=@InsertSQL+' WHERE PTID='''+@PTID+''' ' 
  111.             END 
  112.             Select @WhereCount=@WhereCount+1          
  113.         END 
  114.         --------------判斷是否存在PhasesID列(階段ID)-----------------------------  
  115.         if @PhasesID IS NOT NULL AND  col_length( @tableName+' ',   'PhasesID ')   is not   null   
  116.         BEGIN 
  117.             IF(@WhereCount>0)  
  118.             BEGIN 
  119.                 select @InsertSQL=@InsertSQL+' AND PhasesID='''+@PhasesID+''' ' 
  120.             END 
  121.             ELSE 
  122.             BEGIN 
  123.                 select @InsertSQL=@InsertSQL+' WHERE PhasesID='''+@PhasesID+''' ' 
  124.             END 
  125.             Select @WhereCount=@WhereCount+1          
  126.         END 
  127.         print @UpdateSQL  
  128.         exec (@UpdateSQL)  
  129.         print @InsertSQL  
  130.         Exec  (@InsertSQL)  
  131.     END 
  132.      
  133. END 

#p#

存儲過程有了,再配個XML,根據參數把TableName配進去,再加點可配的自定義屬性什么的,例如:

  1. <Control Display="解約申請"> 
  2.   <QueryStrings> 
  3.     <QueryString QueryName="PEId">D80E55971198454F97F7EBFE89D239DC</QueryString> 
  4.   </QueryStrings> 
  5.   <Url><![CDATA[/FormServerTemplates/ChainsReleaseForm.aspx]]></Url> 
  6.   <SQlTableName>T_ChainsReleaseForm</SQlTableName> 
  7.   <SQlTableName SQlWhere=" Where CRFID=(Select top 1 CRFID from T_ChainsReleaseForm Where ShopID={@ShopID@})">T_GeneralFromTable</SQlTableName> 
  8. </Control> 
  9. <Control Display="客戶信息表"> 
  10.   <QueryStrings> 
  11.     <QueryString QueryName="PEId">E515165457C5493DA605D4E66416A685</QueryString> 
  12.     <QueryString QueryName="PEId">F9D6E25D978D4E5DB061AE33D68EE279</QueryString> 
  13.     <QueryString QueryName="PEId">D9B9D05380EF4F11B2D2A74D0684DF4B</QueryString> 
  14.     <QueryString QueryName="PEId">45C2B486EB7A463E94B3D55D48DB4A74</QueryString> 
  15.     <QueryString QueryName="PEId">509B5BB3A3B14912ACD633F28A6C91A1</QueryString> 
  16.     <QueryString QueryName="PEId">0CFE53A2A3BB4D6A891B34AA43B0FAC7</QueryString> 
  17.     <QueryString QueryName="PEId">70247883D6414746848E0CE22F06A3F3</QueryString> 
  18.     <QueryString QueryName="PEId">C1E2AD7DFC674DC2AA8434763D4DA0A3</QueryString> 
  19.     <QueryString QueryName="PEId">EE895BBB5B2D43179B196F753ACADCC9</QueryString> 
  20.   </QueryStrings> 
  21.   <Url><![CDATA[/FormServerTemplates/AddShopInfo.aspx]]></Url> 
  22.   <SQlTableName>T_Shop</SQlTableName> 
  23.   <SQlTableName>T_Shopkeeper</SQlTableName> 
  24.   <SQlTableName>T_Acreage</SQlTableName> 
  25.   <SQlTableName>T_BusinessDistrict</SQlTableName> 
  26.   <SQlTableName>T_Compete</SQlTableName> 
  27.   <SQlTableName>T_SupportingFacility</SQlTableName> 
  28. </Control> 

這樣,就一勞永逸了。

原文鏈接:http://www.cnblogs.com/codelove/archive/2011/07/02/2096296.html

【編輯推薦】

  1. SQL Server復災 你懂了嗎?
  2. SQL Server管理 這些你懂嗎?
  3. 客戶的一次疏忽,DBA的一次噩夢
  4. 單數據庫vs多數據庫,單實例vs多實例 效率測試
  5. 關于Update在不同數據庫的使用
責任編輯:艾婧 來源: 雪雁的博客
相關推薦

2012-03-01 09:37:17

iOSVOIP

2023-06-26 08:17:53

拉鏈表數據結構

2011-05-12 10:48:49

CSS清理浮動

2017-03-20 18:53:42

征信記錄金融服務

2025-04-29 10:04:41

JavaScripMap代碼

2020-08-06 16:34:48

Python開發工具

2025-04-29 02:22:00

Python技巧CLI

2024-12-19 09:05:13

Python鏈式調用

2023-06-19 15:36:30

JavaScrip技巧開發

2025-05-12 08:05:00

Ajaxfetch APIWeb

2024-11-11 17:00:27

字典壓縮Python代碼

2022-08-28 19:03:18

JavaScript編程語言開發

2017-04-21 12:03:21

互聯網

2019-06-21 13:52:19

PythonPython 3.8編程語言

2011-04-29 10:22:49

CSS高性能Web開發

2021-12-22 10:18:00

建木九州云DevOps

2020-10-04 13:15:37

代碼技術開發

2022-05-10 10:28:21

JavaScript代碼

2021-01-31 08:00:48

Windows 10Windows操作系統

2023-11-23 13:50:00

Python代碼
點贊
收藏

51CTO技術棧公眾號

日韩在线资源| 日韩免费av网站| 啪啪激情综合网| 色综合久久综合网| 亚洲综合首页| 色婷婷中文字幕| 蜜臀av性久久久久蜜臀av麻豆| 久久五月情影视| 在线免费观看污视频| 国内欧美日韩| 亚洲风情在线资源站| 亚洲精品中文综合第一页| 精品国产亚洲av麻豆| 免费日韩一区二区| 欧美www在线| 一级黄色片大全| 亚洲高清999| 欧美亚洲丝袜传媒另类| 久艹视频在线免费观看| 91在线高清| 91麻豆免费看片| 97碰碰视频| 亚洲视频在线观看一区二区| 亚洲毛片视频| 久久国产天堂福利天堂| 成人免费无遮挡无码黄漫视频| 国产精品毛片无码| 色诱视频网站一区| 国产毛片视频网站| 在线午夜影院| 亚洲视频在线观看一区| 免费精品视频一区二区三区| 国产成人三级一区二区在线观看一| 久久成人国产| 91国内免费在线视频| √天堂中文官网8在线| 国产欧美日韩在线一区二区| 337p日本欧洲亚洲大胆色噜噜| 亚洲综合123| 免费成人毛片| 欧美性欧美巨大黑白大战| 激情伊人五月天| 成年人国产在线观看| 亚洲免费观看在线视频| 亚洲国产精品影视| 欧美被日视频| 国产精品久久久久7777按摩| 日韩高清三级| 国产福利电影在线| 国产亚洲欧洲一区高清在线观看| 精品国产乱码久久久久软件| 亚洲乱熟女一区二区| 国产一区二区三区黄视频| 国产主播喷水一区二区| 国产又色又爽又黄又免费| 日韩精品91亚洲二区在线观看 | 狠狠躁夜夜躁人人爽超碰91| 真实国产乱子伦对白视频| 日本动漫同人动漫在线观看| 亚洲女与黑人做爰| 水蜜桃在线免费观看| 岛国中文字幕在线| 伊人性伊人情综合网| 国产内射老熟女aaaa| 特级毛片在线| 亚洲成av人片| 久久美女福利视频| 国产精品亚洲一区二区三区在线观看| 91豆麻精品91久久久久久| 亚洲爆乳无码专区| 黄色成人小视频| 欧美日韩国产综合一区二区| 加勒比av中文字幕| 91国内精品| 日韩成人av一区| 色综合99久久久无码国产精品| 欧美午夜精彩| 精品自在线视频| 日韩精品视频免费播放| 亚欧成人精品| 国产欧美日韩高清| 午夜精品久久久久久久99老熟妇| 白白色 亚洲乱淫| 色涩成人影视在线播放| 国内外激情在线| 亚洲电影一区二区| 国产真人无码作爱视频免费| 国产成人77亚洲精品www| 欧美日韩大陆一区二区| 国产黑丝在线视频| 综合亚洲自拍| 久久久精品一区二区三区| 国产一级在线观看视频| 视频一区视频二区中文字幕| 成人国产精品久久久| 好吊视频一区二区三区| 国产婷婷精品av在线| www.-级毛片线天内射视视| 日韩伦理福利| 337p亚洲精品色噜噜噜| www.自拍偷拍| 真实国产乱子伦精品一区二区三区| 午夜精品福利视频| 亚洲中文字幕在线观看| 高清成人免费视频| 亚洲精品永久www嫩草| av2020不卡| 欧美日韩国产免费一区二区| 国产成人av无码精品| 日韩精品永久网址| 97超级碰碰人国产在线观看| 97超碰中文字幕| 久久综合久色欧美综合狠狠| 欧洲美女和动交zoz0z| 日本不卡一二三| 欧美mv日韩mv国产网站| 九九热久久免费视频| 亚洲人体偷拍| caoporn国产精品免费公开| 福利片在线看| 欧美日韩在线免费| 农村末发育av片一区二区| 成人免费av| 日本成人免费在线| 日本高清视频免费观看| 亚洲色图20p| 三级a在线观看| 伊甸园亚洲一区| 欧美激情一区二区三区成人| 国产精品久久久久久免费播放| xnxx国产精品| 少妇人妻无码专区视频| 高清精品久久| 精品久久久av| 一区二区三区日| 欧美国产日韩亚洲一区| 国模吧无码一区二区三区| 91综合精品国产丝袜长腿久久| 日韩有码在线视频| 欧美在线视频精品| 国产欧美一区二区精品秋霞影院| 1024精品视频| 国产精品一区二区三区美女| 欧美xxxx18性欧美| 精品人妻久久久久一区二区三区| 成人欧美一区二区三区小说| 中文字幕在线综合| 久久精品不卡| 国产剧情久久久久久| 福利片在线观看| 精品视频在线看| 91无套直看片红桃在线观看| 日本美女一区二区三区| 日韩欧美一区二区三区久久婷婷| 怡红院成人在线| 国产一级揄自揄精品视频| 91久久国产综合久久91| 国产日韩欧美不卡| 日本黄大片一区二区三区| 日本欧美肥老太交大片| 91精品久久久久久久久久久久久| 性开放的欧美大片| 3atv在线一区二区三区| 久草视频免费在线| 成人av电影在线| 人妻精品无码一区二区三区 | 日韩电影大片中文字幕| aaa人片在线| 国产亚洲一二三区| 亚洲一级免费在线观看| 欧美精品国产一区二区| 国产一区二区不卡视频在线观看| 日韩激情电影| 综合久久五月天| 亚洲AV无码国产精品午夜字幕| 亚洲成人资源网| 国产精品无码久久久久一区二区| 久久中文欧美| av不卡在线免费观看| 一区二区三区国产好| 2019国产精品自在线拍国产不卡| 奇米影视888狠狠狠777不卡| 欧美色爱综合网| 欧美日韩大片在线观看| 久久综合丝袜日本网| 中文字幕在线综合| 激情综合中文娱乐网| 欧美精品免费观看二区| 免费成人高清在线视频| 国模极品一区二区三区| 国产福利小视频在线观看| 日韩一区二区三区在线观看| 免费在线不卡视频| 国产精品久久久久aaaa樱花 | 亚洲精品少妇30p| 一级国产黄色片| 老色鬼精品视频在线观看播放| 欧美美女黄色网| 国产一区二区三区四区大秀| 96sao精品视频在线观看| 英国三级经典在线观看| 久久精品小视频| 欧美偷拍视频| 日韩精品一区二区三区三区免费 | 国产在线xxx| 在线视频欧美日韩精品| 女人18毛片一区二区三区| 欧美日韩一区二区在线观看视频| 国产精品theporn动漫| 国产精品久久久久久久久免费相片 | 国内自拍中文字幕| 日韩大片在线| 久久一区二区三区av| 清纯唯美激情亚洲| 国产精品欧美在线| 伊人网在线播放| 国内成人精品一区| av免费在线观看网址| 这里只有精品视频| 偷拍自拍一区| 日韩风俗一区 二区| 中文天堂在线播放| 精品国产999| 日韩一级片av| 亚洲欧洲无码一区二区三区| 久久国产精品影院| 成人三级伦理片| 天天干天天色天天干| 久久激情一区| 欧美精品久久久久久久免费| 午夜久久黄色| 最新黄色av网站| 日韩精品欧美| 日韩欧美第二区在线观看| 神马久久av| 国产在线欧美日韩| 国产精品一区二区中文字幕| 91原创国产| 亚洲综合色婷婷在线观看| 成人精品网站在线观看| 成人亚洲网站| 国产精品亚洲综合天堂夜夜| 春暖花开亚洲一区二区三区| 欧美一级黄色网| www.日韩| 日本不卡高字幕在线2019| 校园春色亚洲| 欧美中文字幕在线播放| 中文字幕资源网在线观看免费| 性视频1819p久久| 98色花堂精品视频在线观看| 欧美激情欧美激情在线五月| 尤物yw193can在线观看| 欧美乱大交xxxxx另类电影| 黄黄的网站在线观看| 欧美成人国产va精品日本一级| 黄色免费在线观看| 欧美成人精品不卡视频在线观看| www久久日com| 欧美激情国产日韩精品一区18| 午夜小视频福利在线观看| 久久久久久久久久久免费精品| 激情影院在线| 午夜欧美不卡精品aaaaa| 黄色在线免费观看网站| 热久久视久久精品18亚洲精品| 国产成人精品123区免费视频| 国产精品成人国产乱一区| 亚洲国产伊人| 国产精品一区视频| 九色精品91| 一区二区三区免费看| 欧美日本一区| 成人毛片视频网站| 青青青爽久久午夜综合久久午夜| 一二三级黄色片| 成人av电影在线观看| 一级片视频免费看| 亚洲欧美aⅴ...| 国产一级18片视频| 欧美三级欧美一级| 国产三级漂亮女教师| 亚洲国产欧美在线成人app| 国产在线日本| 欧美多人乱p欧美4p久久| 在线观看特色大片免费视频| 国产欧美日韩专区发布| 成人av婷婷| 亚洲精品久久久久久一区二区| 欧美国产免费| 亚洲污视频在线观看| 丁香啪啪综合成人亚洲小说| 国产在线观看h| 亚洲乱码日产精品bd| 亚洲欧美一区二区三区在线观看| 5566中文字幕一区二区电影 | 在线精品亚洲欧美日韩国产| 国产日韩欧美自拍| 台湾色综合娱乐中文网| 精品国产无码在线| 久久福利影视| 三级黄色片免费观看| 99久久精品久久久久久清纯| 国产午夜精品理论片在线| 精品成人久久av| www.xxx国产| 国产亚洲欧洲高清| 精品美女视频在线观看免费软件 | 日本一不卡视频| 在线观看一区二区三区四区| 99精品视频在线观看| 色欲人妻综合网| 91九色02白丝porn| 天天操天天干天天舔| 日韩在线小视频| 成人欧美大片| 久久日韩精品| 亚洲天堂免费| 色一情一区二区| 久久蜜桃av一区二区天堂| 朝桐光av在线| 欧美精品亚洲一区二区在线播放| 天堂在线资源8| 久久99热这里只有精品国产| 黄色精品视频| 精品产品国产在线不卡| 极品少妇一区二区三区| the porn av| 99re这里都是精品| 国产精品二区一区二区aⅴ| 欧美酷刑日本凌虐凌虐| 国产高清视频免费最新在线| 97高清免费视频| 午夜视频一区二区在线观看| 丰满女人性猛交| 日本亚洲最大的色成网站www| av男人的天堂av| 红桃av永久久久| 六月丁香综合网| 国产+人+亚洲| 8x国产一区二区三区精品推荐| 国产亚洲精品久久久久久久| 精品一区二区三区免费| mm131丰满少妇人体欣赏图| 色婷婷av一区二区三区软件| 天天干天天插天天操| 欧美第一黄色网| 亚洲日本va| 超碰10000| 丁香激情综合国产| 九九热只有精品| 精品国产伦一区二区三区免费 | 蜜乳av综合| 日韩avxxx| 91免费版在线| www.国产毛片| 亚洲深夜福利网站| 成人国产一区| 一本久久a久久精品vr综合| 国产资源精品在线观看| 99自拍视频在线| 91精品国产色综合久久不卡电影 | 成人国产精品免费观看视频| 日本熟妇毛耸耸xxxxxx| 亚洲国产私拍精品国模在线观看| 国产免费不卡| 欧洲在线视频一区| 奇米影视一区二区三区| 久久久精品少妇| 欧美一区二区二区| 国产在线看片免费视频在线观看| 精品一区二区不卡| 一道本一区二区| 国产精品一区二区亚洲| 欧美夫妻性生活| 国产乱码午夜在线视频| 欧美人与性禽动交精品| 久久99精品久久久久婷婷| 亚洲天堂网av在线| 日韩精品一区二区在线| 成人线上视频| 亚洲一区二区三区加勒比| 成人污污视频在线观看| 在线观看 中文字幕| 中文字幕精品av| 中文字幕日韩在线| 国产在线精品91| 中文字幕日韩一区二区| 精品国产九九九| 日本亚洲欧洲色α| 99精品美女| 欧美熟妇精品黑人巨大一二三区| 欧美中文字幕亚洲一区二区va在线| bestiality新另类大全| 精品高清视频| 狠狠色丁香婷综合久久| 亚洲免费在线视频观看| 搡老女人一区二区三区视频tv| 精品国产一区二区三区成人影院 | 日本欧美一区二区三区乱码|