国产凹凸在线-国产拗女一区二区三区-国产白白视-国产白领-国产白拍-国产白丝jk被疯狂输-国产白丝喷-国产白丝在线

金喜正规买球

SQL Compare使用教程:與SQL Compare或SQL Change Automation一起部署數據和架構

翻譯|使用教程|編輯:楊鵬連|2020-09-03 09:54:02.973|閱讀 336 次

概述:您想使用SQL Compare或SQL Change Automation(SCA)創建或更新數據庫,同時確保其數據符合您的期望。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

SQL Compare是一款比較和同步SQL Server數據庫結構的工具。現有超過150,000的數據庫管理員、開發人員和測試人員在使用它。當測試本地數據庫,暫存或激活遠程服務器的數據庫時,SQL Compare將分配數據庫的過程自動化。

點擊下載SQL Compare試用版

您想使用SQL Compare或SQL Change Automation(SCA)創建或更新數據庫,同時確保其數據符合您的期望。您希望避免每次都運行任何其他PowerShell腳本,并且希望將所有內容(包括數據)保持在源代碼控制中。您只想讓一切簡單。Phil Factor通過MERGE從存儲過程中生成腳本演示了它是如何完成的。

如果沒有很多數據,或者只有幾個需要一些靜態數據的表,則可以使用SQL Compare或SCA輕松完成此操作,方法是添加一個部署后腳本,該腳本將作為同步。否則,它只是部署過程中要運行的一個額外腳本。

我們將使用上一篇文章將自定義部署腳本與SQL Compare或SQL Change Automation結合使用中描述的技術,該技術涉及運行一系列MERGE腳本以確保數據庫具有所需的數據。為了創建這些MERGE腳本,我使用了PPP(相當強大的過程),我將在這里進行介紹。手工編寫這些腳本很費力,盡管您幾乎不需要重復創建腳本的繁瑣工作,但是需要對它進行修改以響應相應表的更改。

有什么問題呢?

如果沒有數據,那么重新設計數據庫將很簡單。無論我們拖延了繁瑣的開發工作,當我們要部署到UAT,登臺和生產時,在保持數據完整的同時部署架構更改的問題始終會困擾我們。在進行大量的重新設計之后,無論選擇哪種方式創建數據庫的新版本,我們總是冒著在處理現有數據時遇到困難的風險,尤其是在拆分,合并或重命名表的情況下。

盡管我一直主張在整個開發過程中測試您的數據遷移腳本,但有時您只需要一個帶有某些描述的數據的工作系統,該數據是從源代碼控制構建的。為此,我們有其他選擇:

  1. 構建元數據并隨后使用BCP導入數據(請參閱使用SQL Change Automation從頭開始創建數據庫)。
  2. 作為構建的一部分,在受影響的表中將數據從舊模式“遷移”到新表(在基于狀態的數據庫部署過程中處理棘手的數據遷移)
  3. 使用部署前和部署后腳本處理該問題,使DML活動與用于構建數據庫的DDL保持牢固的距離。(將自定義部署腳本與SQL Compare或SQL Change Automation一起使用)
通常,我們僅從源進行一次構建,然后在開發和測試中將其與各種數據庫副本同步。通常,現代關系數據庫在發出ALTER數據庫命令時就知道如何保存數據,而同步工具(如SQL Compare)知道在SQL Server無法進行數據保存時有很多技巧。但是,總有一段時間,由于不確定性太大,因此變得不可能。此時,您需要使用T-SQL腳本將其拼寫出來,但是您可以這樣做。

我將描述的技術只能與“靜態數據”一起使用,而不會不斷更新。不過,這對于開發人員數據非常有用,因此它適合許多開發和測試工作。如果您希望使用相同的技術來同步UAT,登臺或生產(例如在拆分表之后),則需要通過剪切所有其他連接來“使數據庫靜默”,并在您進行數據動態合并時做分裂。我將在另一篇文章中解釋如何執行此操作。

合并

想象一下,我們想要一些代碼來確保一個表僅包含我們想要的數據,沒有更多,更少。我們使用MERGE語句,以便僅執行必要的插入或刪除操作。讓我們舉一個簡單的例子,來自AdventureWorks:

SET IDENTITY_INSERT [Adventureworks2016].[HumanResources].[Department] ON;
MERGE INTO [Adventureworks2016].[HumanResources].[Department] AS target
  USING (VALUES (1, 'Engineering', 'Research and Development', '2008-04-30T00:00:00'),
(2, 'Tool Design', 'Research and Development', '2008-04-30T00:00:00'),
(3, 'Sales', 'Sales and Marketing', '2008-04-30T00:00:00'),
(4, 'Marketing', 'Sales and Marketing', '2008-04-30T00:00:00'),
(5, 'Purchasing', 'Inventory Management', '2008-04-30T00:00:00'),
(6, 'Research and Development', 'Research and Development', '2008-04-30T00:00:00'),
(7, 'Production', 'Manufacturing', '2008-04-30T00:00:00'),
(8, 'Production Control', 'Manufacturing', '2008-04-30T00:00:00'),
(9, 'Human Resources', 'Executive General and Administration', '2008-04-30T00:00:00'),
(10, 'Finance', 'Executive General and Administration', '2008-04-30T00:00:00'),
(11, 'Information Services', 'Executive General and Administration', '2008-04-30T00:00:00'),
(12, 'Document Control', 'Quality Assurance', '2008-04-30T00:00:00'),
(13, 'Quality Assurance', 'Quality Assurance', '2008-04-30T00:00:00'),
(14, 'Facilities and Maintenance', 'Executive General and Administration', '2008-04-30T00:00:00'),
(15, 'Shipping and Receiving', 'Inventory Management', '2008-04-30T00:00:00'),
(16, 'Executive', 'Executive General and Administration', '2008-04-30T00:00:00')
)source(DepartmentID, Name, GroupName, ModifiedDate)
ON source.DepartmentID = target.DepartmentID
WHEN NOT MATCHED BY TARGET THEN
  INSERT ( DepartmentID, Name, GroupName, ModifiedDate )
  VALUES ( DepartmentID, Name, GroupName, ModifiedDate )
WHEN NOT MATCHED BY SOURCE THEN
  DELETE;
SET IDENTITY_INSERT [Adventureworks2016].[HumanResources].[Department] OFF;
該語句將確保基于主鍵的值在每一行都有條目。對于開發工作,我們不太在乎非關鍵列是否不同。如果還需要確保其他列中的值相同,則需要在WHEN MATCHED短語中附加一條語句,以便在必要時更新值,例如:

([WHEN MATCHED [AND <clause_search_condition>] THEN <merge_matched> ] [...n])

您真的要為數據庫中的所有表手工編寫這樣的代碼嗎?不見得。這是PPP的輸出,稱為#SaveMergeStatementFromTable,我將在后面顯示:

   DECLARE @TheStatement NVARCHAR(MAX)
   EXECUTE #SaveMergeStatementFromTable 
     @tablespec='Adventureworks2016.[HumanResources].[Department]',
     @Statement=@TheStatement OUTPUT;
     PRINT @TheStatement
它使用語句創建數據源,MERGE從您在中指定的表中創建腳本。它返回此腳本作為輸出變量。然后您可以執行它。這將確保在關鍵字段中具有正確值的行數正確。這是一個完整而美妙的解決方案嗎?不完全的。它適用于小型表,但是multi-row 子句的伸縮性不好。最好將其分解為較小的語句。對于較大的表,最終將達到需要的大小,然后使用本機BCP將數據導入到表中。如果您希望執行,則可以將數據BCP到臨時表中,對其進行良好索引,然后將其用作的源,而不是使用a@tablespecVALUESVALUESTRUNCATEMERGEMERGE表值構造器。

您還可以從文件或腳本中保存JSON,并將其用作表源。對于本文,我將堅持簡單性,并演示使用多行VALUES語句的原理,這些語句可以輕松地保留在源代碼控制中以構建開發數據庫或添加靜態數據。

創建MERGE語句的數據集

有不同的方法可以做到這一點。一種是使用來自SSMS的SQL。為此,您只需要對文件系統中為此類活動保留的部分進行讀寫訪問。對于該演示,我創建了一個目錄' c:\ data \ RawData ',并授予了SQL Server訪問權限。您還需要暫時允許使用xp_cmdshell。對于那些神經質的人,有時我還將提供一個可以代替使用的PowerShell腳本。

出于懷舊之情,我們將在古老的NorthWind數據庫上進行嘗試,因為它甚至不會給微薄的文件系統帶來負擔。該腳本將執行#SaveMergeStatementFromTablePPP(因此,您首先需要創建PPP;請參閱后面的內容),并依次提供每個表的名稱作為源。對于sp_msforeachtable(和sp_msforeachdb)系統過程,SQL Server在表或數據庫的名稱中替換?您作為參數提供的字符串中的占位符(' ')。PPP會MERGE在每種情況下(@CreatedScript)生成相應的語句。對于每個表,我們使用其MERGE語句填充臨時表(##myTemp),然后將其寫到指定目錄中的自己的文件中(不要錯過路徑中的尾隨反沖):

USE northwind
DECLARE @ourPath sysname ='C:\data\RawData\Northwind\MergeData\';
DECLARE @TheServer sysname =@@ServerName
Declare @command NVARCHAR(4000)= '
print ''Creating SQL Merge file for ?''
DECLARE @CreatedScript NVARCHAR(MAX)
EXECUTE #SaveMergeStatementFromTable  @TableSpec=''?'', @Statement=@CreatedScript OUTPUT
CREATE TABLE ##myTemp (Bulkcol nvarchar(MAX))
INSERT INTO ##myTemp (Bulkcol) SELECT @CreatedScript
print ''Writing out ?''
EXECUTE xp_cmdshell ''bcp ##myTemp out '+@ourPath+'?.SQL -c -C 65001 -T -S '+@TheServer+' ''
DROP TABLE ##myTemp'
EXECUTE sp_msforeachtable @command
GO
如果成功,它將給出以下信息:
如果要使用SQL Compare或SCA將這種數據部署合并到架構同步中,我們將只需要一個腳本。我們還需要在開始時禁用約束,并在完成后全部啟用它們。這需要對該方法進行非常小的修改,但是原理保持不變。
USE northwind
DECLARE @TotalScript NVARCHAR(MAX)
DECLARE @DestinationDatabase sysname='WestWind'
DECLARE @ourPath sysname ='C:\data\RawData\Northwind\MergeData\TotalFile.sql';
DECLARE @TheServer sysname =@@ServerName
DROP TABLE IF exists ##myTemp
CREATE TABLE ##myTemp (Bulkcol nvarchar(MAX))
DECLARE @DisableConstraints nvarchar(4000)='Print ''Disabling all table constraints''
'
SELECT @DisableConstraints=@DisableConstraints+'ALTER TABLE [WestWind].[dbo].'+QuoteName(name)+' NOCHECK CONSTRAINT ALL
' FROM sys.tables
INSERT INTO ##myTemp (BulkCol) SELECT @DisableConstraints
DECLARE @command NVARCHAR(4000)= '
print ''Creating SQL Merge file for ?''
DECLARE @CreatedScript NVARCHAR(MAX)
EXECUTE #SaveMergeStatementFromTable  @TableSpec=''?'',@DestinationDatabase='''+@DestinationDatabase+''',@Statement=@CreatedScript OUTPUT
INSERT INTO ##myTemp (Bulkcol) SELECT coalesce(@CreatedScript,'''')+''
''
'
SELECT @command
EXECUTE sp_msforeachtable @command
print 'Writing out file'
DECLARE @BCPCommand NVARCHAR(4000)='bcp ##myTemp out '+@ourPath+' -c -C 65001 -T -S '+@TheServer
EXECUTE xp_cmdshell @BCPCommand
DECLARE @endCommand VARCHAR(4000)= (SELECT 'ECHO EXEC sp_msforeachtable ''ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all'' >>'+@ourPath)
EXECUTE xp_cmdshell @endCommand
DROP TABLE ##myTemp
奇怪的是,當SQL Compare執行synch腳本時,如果您不小心,它可能會為在SSMS中執行腳本時能正常工作的代碼提出錯誤。這解釋了為什么逐表禁用約束。這也解釋了為什么我避免使用GO批量定界符。

這將產生一個文件...

如果直接在SSMS中執行此文件,它將檢查每個表并進行必要的插入和刪除操作,以確保數據相同。當添加到同步腳本后,它將對您創建或更改的數據庫執行相同的操作。

如果您希望使用其他名稱部署到數據庫,則可以將@DestinationDatabase可選參數設置為#SaveMergeStatementFromTable正在創建或同步的數據庫的名稱,正如我在前面的代碼中所演示的那樣。如果我需要一個依賴于先前腳本的腳本來提供數據庫上下文(SQL Compare和SCA會執行此操作),則可以通過將@DontSpecifyTheDatabase可選參數設置為1 來隱藏三部分名稱的數據庫部分。

現在我們有了文件,可以將其放入“源代碼管理”中。好的,我在這里是假裝的,因為我沒有開發Northwind。我要做的就是通過使用SQL Compare將Northwind數據庫與空目錄進行比較來創建源代碼管理目錄。然后,我已經添加了自定義腳本目錄及其部署后和部署前的子目錄。

使用真實的數據庫,MERGE只要修改表,就可以非常簡單地運行SQL來生成語句。合并語句依賴于它們作用于具有相同名稱的相同列數的表。如果不是,將出現錯誤。如果您修改源腳本中的表,以使目標數據庫中的一個或多個表不同,則相應的同步后合并語句將需要符合新設計。

現在,我將合并腳本(TotalFile.sql)放入Post-Deployment目錄中。一旦開發了此技術,則可以通過指定適當的部署后目錄的正確路徑,通過SQL Batch文件或PowerShell腳本直接將文件寫入。

從那時起,我可以使用此目錄同步數據和架構。SQL Compare會將腳本追加到它生成的生成腳本的末尾,并使用它來填充表。請注意,在數據填充操作之前禁用約束并在之后啟用約束很重要。如果您有意在源代碼管理的對象構建腳本中禁用了約束,則可能導致問題,但是我們將忽略該問題。

強大的程序

我使用了臨時過程來完成創建MERGE腳本中的驢工作。這是我用來提取數據的一系列過程中的一個,我在//github.com/Phil-Factor/JSONSQLServerRoutines上維護這些過程。

如果指定表,則此PPP將創建一條MERGE語句。它必須在SQL Server 2017或更高版本上運行,因為它使用了該STRING_AGG功能。如果使用XML串聯技巧,可以將其更改為在SQL Server 2016上運行。

它使用VALUES包含表中數據的多行語句創建表源,并將其用作MERGE語句源,然后可以在提供其名稱的目標表上執行該語句。如所討論的,該技術僅對小表才可行,因為使用該VALUES子句意味著該子句隨比例降低。

源表或查詢可以通過的' database.schema.table'格式指定@tablespec,也可以通過分別提供表名稱,模式和數據庫來指定。您可以提供查詢,盡管在這種情況下,您將需要提供目標表的名稱。您的查詢將提供源數據,并且必須以正確的順序為您指定的目標表生成正確的表源,并以正確的順序顯示正確的列。

完善系統

除了表名,您還可以向該例程提供查詢。該查詢必須產生與目標表相同的結果,當然不包括計算列。這有效地使您可以指定例如如何填充表拆分的結果表。通常,MERGE我們通過傳遞給過程的表來確定主鍵。但是,查詢結果不能有主鍵。您可以通過兩種方法解決此問題。

首先,您可以填充已填充了所需測試數據的臨時表,然后添加主鍵。我們通過使用臨時表作為源的查詢將臨時表中的數據傳遞給過程:

USE AdventureWorks2016;
SELECT TOP 100 Customer.PersonID, AccountNumber,
  Identity(INT, 1, 1) AS uniquifier, PersonType, Title, FirstName, MiddleName,
  LastName, Suffix, AddressLine1, AddressLine2, City, PostalCode, Name
  INTO #tempTable
  FROM Sales.Customer
    INNER JOIN Person.Person
      ON Customer.PersonID = Person.BusinessEntityID
    INNER JOIN Person.BusinessEntityAddress
      ON Person.BusinessEntityID = BusinessEntityAddress.BusinessEntityID
    INNER JOIN Person.Address
      ON BusinessEntityAddress.AddressID = Address.AddressID
    INNER JOIN Person.AddressType
      ON BusinessEntityAddress.AddressTypeID = AddressType.AddressTypeID;
ALTER TABLE #tempTable ALTER COLUMN PersonID INTEGER NOT NULL;
ALTER TABLE #tempTable
ADD CONSTRAINT MyTempPKConstraint PRIMARY KEY CLUSTERED
      (PersonID, AccountNumber, uniquifier);
DECLARE @TheStatement NVARCHAR(MAX);
EXECUTE #SaveMergeStatementFromTable @Query = 'Select top 100 * from #tempTable',
  @Destination = 'MyTempTable', @Statement = @TheStatement OUTPUT;
PRINT @TheStatement;
DROP TABLE #tempTable;
或者,您可以根據需要指定要使用的主鍵。
USE AdventureWorks2016;
DECLARE @TheStatement NVARCHAR(MAX);
EXECUTE #SaveMergeStatementFromTable 
  @Query = '
  SELECT top 10 Customer.PersonID, AccountNumber,
  PersonType, Title, FirstName, MiddleName,
  LastName, Suffix, AddressLine1, AddressLine2, City, PostalCode, Name
  FROM Sales.Customer
    INNER JOIN Person.Person
      ON Customer.PersonID = Person.BusinessEntityID
    INNER JOIN Person.BusinessEntityAddress
      ON Person.BusinessEntityID = BusinessEntityAddress.BusinessEntityID
    INNER JOIN Person.Address
      ON BusinessEntityAddress.AddressID = Address.AddressID
    INNER JOIN Person.AddressType
      ON BusinessEntityAddress.AddressTypeID = AddressType.AddressTypeID',
  @Destination = 'MyTempTable', 
  @PrimaryKeys='PersonID, AccountNumber',
  @Statement = @TheStatement OUTPUT;
PRINT @TheStatement;
結論

進行SQL比較并發現數據和架構與源數據庫相同是令人驚訝的。如果數據庫中的表設計發生更改,則只需要準備一個新的部署后腳本,但是由于它都是自動進行的,因此我認為這反倒不會帶來太大麻煩。我使用多行VALUES語句是因為它看起來比使用JSON來保存數據要少一些,但是我認為使用JSON可以允許使用更大的表。

為什么不只使用本地BCP來存儲表?按照我在此處演示的方法進行操作,意味著普通的SQL Compare或SCA部署可以完成此操作而無需其他腳本。一切都由數據庫腳本保存。

相關產品推薦:

SQL Prompt:SQL語法提示工具

SQL Toolbelt:Red Gate產品套包

SQL Monitor:SQL Server監控工具


想要購買SQL Compare正版授權,或了解更多產品信息請點擊


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产区日韩精品一区二区三区 | 欧美日韩人美精品一区在线 | 亚洲成a人v欧美综合天堂 | 又爽又大又光又色的午夜视频 | 神马家庭影院 | 俺去啦俺来也五月天 | 日韩中文网| 日本免费中文字幕在线看 | 三级国产国语三级在线2 | 国产亚洲精品aa | 日本不卡一区二区aα | 国产又色又爽又黄的视频网站樱 | 日本一区二区三区在线观看网站 | 最新中文字幕在线观看 | 免费床戏全程无遮 | 国产激情视频网站 | 日韩亚洲国产女同二区三区 | 伊人影视在线观看日韩 | 欧美性大 | 欧美日韩最新一区二区三区 | 日本精品大胆 | 韩国日本国产片免费观看 | a级孕妇高清免 | 日韩一区二区三区免费网站 | 日韩国产一区二区在线播放 | 免费观看最新电影和热门影视剧 | 国产精品日韩中文字幕熟女 | 日韩中文精品亚洲国产二区三区 | 国产欧美一区二区精品仙草咪 | 玖玖国产资源在线 | 国产欧美日韩在线一区二区不卡 | 成人性生交大婬乱欧美 | 免费的精品一区二 | 亚洲欧洲精品国产二码 | 日本激情猛烈在线看免费观看 | 日产日韩在线亚洲欧 | 老司机永久免费视频网站在线观看 | 制服丝袜亚洲中文综合 | 亚洲欧美日韩国产精选在线观看 | 国产欧美日韩亚洲精品中文专区 | 国产一区二区三区在线精品专区 | 国产一级做a爰片在线看免费 | 欧美xxx| 91九色国产在线 | 亚洲国产aⅴ精品一区二区女女 | 波多野中文字幕s | 亚洲欧美国产制服另类 | 国产亚洲精品综 | 欧美日本系列亚洲第一页 | 三级网址 | 欧美顶级情欲片免费看 | 国产超薄黑色丝袜在线观看 | 国产精品亚洲a∨天堂不卡 97在线观看免费视频观看 | 国产欧美日韩综合在线一 | 按摩师舌头进去添的我好舒服 | 国产区激情区精品视频区一99 | 99视频99在线 | 欧美日韩视频在线播放 | 一区二区三区国产 | 欧美高清爽一区 | 国产亚洲免费在线观看 | 成人做爰视频www爽爽爽文章 | 视频观看 | 福利在线视频欧美 | 丝袜线观看 | 人人揉揉揉揉揉日日 | 国产91精彩视频 | 国产在线精品91国自产拍免费 | h肉视频在线观看 | 亚洲精品中文字幕无乱码 | 国产精品午夜福利 | 国产做国产爱免费视频 | 日韩欧美一二三区 | 亚州视频一区 | 日韩精品激情中文一区 | 日韩精品电影一区亚洲 | 国产高清视频在线播放 | 色国产精品妇射 | 精品尹人在线观看 | wwwらだ天堂中文在线 | 亚洲人成网站18 | 精品九九热在线免费视频 | 国产在线拍揄自揄免费一区 | 亚洲天堂一区 | 中文字幕免费播放 | 国产九九精品在线 | 蜜臀91精品国产免费观看 | 欧美日操 | 92看片婬黄大片看国产片 | 爱草草视频97人人干人人 | 欧洲女同免费视频网站 | 日本欧美激情视频二区 | h视频在线观看免费 | 国内精品卡一 | a级国产乱理论片在线 | 国产精品宾馆在线精品酒店 | 成全视频在线观看免费高清 | 国产盗摄视频在线观看 | 欧美亚洲人成在线免费观看 | 日韩怡红院亚洲精品二区 | 欧美性爱大全在线观看 | 欧美中日韩免费观 | 日产精品一品二品三品 | 成人精品鲁一鲁一区二区 | 日本精品中文字幕阿v免费 日韩精品亚洲精品第一页 视频在线播放在线观看 | 欧美国产日韩精品系列 | 国产一区二区三区不卡在线看 | 国产男生夜| 日韩精品一区二区三区蜜桃 | 日本在线看片免费人成视频 | 国产色黄乱子精品的a | 欧美一区色 | 亚洲一区二区三区 | 国产精品盗摄一区二区在线 | 韩剧日剧在线看 | 国产福利精品一区二区 | 欧美黑人猛xx | 日日天干夜夜人人添 | 私人小影院 | 精品国产手机自在线观 | 国产呦精品一区二区三区网站 | 日本激情在线观看免费观看 | 男人的好在线 | 乱伦精品国产高清 | 国产一区二区三区精品91 | 亚洲精品自偷自拍 | 国产免费网站 | 91插插插网站 | 亚洲a级午夜线上看不卡 | 二区视频在线观看 | 国自产精品手机在线观看 | 日韩在线精品观看视频 | 欧美日本国产综合图区 | 成人年鲁鲁在线观 | 真人一级一级99片黄大片 | 国产痴汉系列在线播放 | 日韩中文字幕高清一区 | 激情精品一区二区在线观看 | 国产一级做a爱免费 | 国产伦理 | 日韩亚洲欧美一区二区三区 | 欧美精品一区二区三区在线播放 | 国产精品天天在线午夜更新 | 国产专区欧美专区在线观看 | 欧美永久免费观看精品视频 | 白虎精品亚洲福利线电影 | 国产乱码一区二区三区爽爽爽 | 国产老肥老太在线视频 | 亚洲精品国产品国语原创 | 国产亚洲sss在线播放 | 国产不卡一区不卡二区不卡三区 | 成人国产精品高清 | 精品精品国产免费看不卡 | 日韩欧美一区二区三 | 国产精品偷伦费观看 | 玖玖精品在线观看 | 日本在线播放高清免费国产 | 国产亚洲精品综合网在线观看 | 国产精品成人一区视频网站 | 懂色一区二区三区在线播放 | 欧美国产一区二区 | 中文字幕在线播放一区二区三区 | 国产亚洲日韩欧 | 九一国产在线视频免观看 | 日韩亚洲国产中文永久 | 强伦轩一区二区三区四区播放方式 | 国内精品卡一卡二卡三 | 成人欧美精品资源在线观看 | 国产白丝jk学生在线播放 | 菠萝蜜视频 | 国产高清尿小便嘘嘘视频 | 成人精品人成网站 | 欧美一区色 | 在线亚洲日韩欧美一区二区 | 日韩一区二区视频在线 | 国产特黄| 欧美国产日韩在线一区 | 国产在线ts人妖免费视频 | 91看片婬黄大片91桃色 | 丝袜视频国产手机在线 | 一区二区精品视频日本 | 男男女女爽爽爽免费视频 | 91香蕉榴莲丝瓜草莓黄瓜榴 | 国产精品偷伦视频免费手机播 | 国产玖玖玖九九精 | 国产精品视频网站丝袜 | 五月天婷婷激情 | 亚洲精品vs中文字幕白桨 | 女人毛多水多的视频 | 揄拍成人国产精品视频 | 青青草国产精品视频 | 日本三级韩国三级欧美三级 | 国产高清在线精品一区不卡 | 亚洲一区二区三区香蕉下载 | 97一区二区国产好的精华液 | 99玖玖爱在线精品免费观看 | 欧美变态口| 免费人成视频在线观看播放网站 | 人妖性喷潮xxxx | 国产老熟女精品视频大全 | 国产网友愉拍精品视频手机 | 欧美va免费大片 | 国产一级婬片aa | 国产99视频精品专区 | 欧美日韩视频在线播放 | 国产亚洲人成a | 日本精品影视国产 | 91短视频在线观看 | 亚洲人成在线播放网站 | 99re国产精品视频首页 | 蜜桃视频专区 | 日本a∨精品一区二区三区 亚洲s色大片在线观看 | 亚洲综合色自拍一区 | 精品国产一区二区三区四区色 | 丝袜视频 | 欧美日韩中文字幕一区二区高清 | 日本a级网站在线观看 | 亚洲欧美专区 | 国产老熟女高 | 国产日本欧美亚洲日韩 | 日韩欧美国产一级免费 | 国产精品午夜未成人免费观看 | 中文字幕第一页在线 | 91免费网站 | a级情欲片在线观看 | 日韩一区二区在线观看视 | 国产精品亚洲精品爽爽 | 国偷精品免费看 | 日韩精品 | 亚洲国产综合视频免费在线 | 国产制服精品一区二区视色 | 国产日产成人免费视频在线观看 | 中日韩在线视频 | 欧美区一区二区三区四 | 亚洲欧美综合在线精品 | 欧美性bbbbbxxxxx | 91色琪琪电影亚洲精品久 | 亚洲午夜一区二区三区在线观看 | 国产视频中文字幕在线观看 | 欧美日产国产 | 九九在线免费视频正品 | 动精品动漫专区3d在线看 | 一区二区国产高清视频在线 | 精品在线中 | 国产91最新欧美在线 | 成人午夜视频一区二区国语 | 欧美bbbb性视频 | 午夜亚洲国产理论片二 | a级国产精品理论片在线观看 | 欧美亚洲欧美日韩中 | 国产原创导航 | 国产欧美一区二区精品仙草咪 | 欧美一区二区三区gg高清影视 | 国产一区日韩二区欧美三 | 欧美激情视频在线观看一区 | 亚洲一级在线中文字幕 | 99热在线精品 | 国产色系视频在线观看免费 | 欧美日本一区二区三区道 | 亚洲成v| 男女车车的车车网站w98免费 | 国产精品高清视亚洲一区二区 | jizz中国jizz免费 | 国产超薄肉丝袜在线播放 | 欧美三级美国一 | 不卡中文字幕 | 日产精品卡二卡 | 岛国一区二区三区 | 国产一区二区三区在线看 | 精品人伦一区二区三区蜜桃黑人 | 国产老熟女一区二区三区 | 国内精品视频在线观看九九 | 日韩欧美一区二区在线观看 | 国产日韩精品视频一区二区三区 | 欧美剧国产剧视频在线观看 | 理论电影免费观看 | 国产精品亚洲产品一区二区三区 | 国产性爱| 亚洲中文字幕丝袜制服视频 | 日本二区在线中文字幕 | 日本99成人免费 | 国产丝袜在线播放 | 99精品国产福利片在线观看 | 韩国理伦电影午夜三级 | 一区二区三区免费高清视频 | 99精品不卡一区二区三区 | 亚洲国产精品福利在线 | 丰满饥渴老女人hd | 九一人才网 | 国产菲菲视频在线观看 | 欧美亚洲日本国产 | 小明欧美精品视频在线观看 | 精品在线视频免费在线观 | 欧美性愤潮xxxx | 亚洲国产欧美日韩v一区二区 | 国产片免费 | 五福临门电视剧免费观看完整 | 国产精品偷伦 | 日韩在线不卡中文字幕一区 | a国产理论电影免费观看 | 在线一区二区三区中文字幕 | 国产免费人成视频网站在线看 | 国产精品成人自拍 | 国产精品一区二区电影 | 黑人巨茎大战亚洲白妇 | 国产人碰人摸人爱视频 | 国产免费高清69式视频在线观看 | 国产精品日韩欧美制服 | 快插我bb| 费精品国产一区国产精品剧情在线 | 欧美日韩一区二区三 | 日本护士xxxx做爰 | 国产乱码高清区二区三区 | 99精品成人高清在线观看 | 欧美三级色片在线观看乳 | 亚洲а∨天堂20 | 亚洲+变态+欧美+另类+精品 | 手机免费在线追剧网站 | 亚洲老女人精品老妇女 | 一区二区三区高清视频 | 久热综合在 | 青草青在线 | 欧美一片毛国产在线视频 | 欧美精品老牛影 | 亚洲欧美精品精品aⅴ | 久热爱精品视频在线 | 五月丁香六月婷婷综合网缴情 | 91福利国| 成人免费**毛 | 国产视频在线一二区精品分类 | 亚洲已满18点击进入在线观看 | 国产精品成人va在线观看 | 欧美性free第一次摘花 | 欧美综合激情网 | 国产精品女丝袜白丝袜美腿 | 日韩专区中文字幕在线 | 欧美日韩中文在线视频 | 亚洲免费在线视频观看 | 欧美一区 | 日韩色婷 | 国产午夜免费福利红片 | 亚洲国产精品一区二区九九 | 观看直播更便捷 | 福利成人春色在线观看免费网站 | 国产区在线视频 | 国产一进一出又大又粗爽视频 | 国产第一福利精品导航 | 免费国产一级特黄aa大片在线 | 日韩3级无毒不卡在线观看 乱女伦露脸对白在线播 | 国产精品碰碰现在自在拍 | 超刺激高跟鞋脚交视频在线 | 精品日韩欧美一区 | 欧美日韩国产综合 | 欧美日韩不卡中文网 | 视频一区二区亚洲欧美 | 大地资源高清日本 | 国产乱码一区二区三区爽爽爽 | 欧美激情视频在线观看 | 中国在线观看免费国语版 | 国产在线拍揄自揄拍免费下载 | 欧美性愤潮xxxx | 日韩午夜免费电影 | 欧美国产精品 | 精品免费人成视 | 欧美日韩亚洲成色二本道三区 | 日本毛x片免费视频观看视频 | 国产精品一区二区视色 | 亚洲三级网站 | 免费高清精品国偷自产在线 | 99国产欧| 国产91玉足脚交在线播放 | 日韩亚洲产在线观看 | 99精品视频免费在线观看 | 9191中文字幕免费 | 国产精品v在线播放www | 天堂亚洲国产日韩在线看 | 亚洲国产品综合 | 国产在线精品一区在线观看; | 韩剧嘟嘟网| 99re这里 | 妖精影院 | 51精产国品一二三产区区 | 国语自产偷拍精品视频偷最新 | 丝袜美腿视频区一区二区三 | 在线影院 | 愉拍自拍一区首页 | 国产萌白酱喷水在线播放尤物 | 国产精品自在在线免费观看 | 最近日本免费观看mv免费版 | 国产精品亚洲第一区在线观 | 制服丝袜另类专区制服 | 中文字幕中字在线视频 | 日本视频在线免费观看 | 欧美韩国精品另类综合 | 精品一区二区中文字幕 | 18岁成年人网站 | 日本福利一区二区三区 | 亚洲国产欧美中文手机在线 | 国产亚洲欧美一区二区 | 欧美午夜色淫网 | 精品午夜免费高清视频 | 欧美午夜一区二区之蜜桃 | 女同国产精品一区二区 | 奇米色88欧美一区二区 | 国产在线精品观看一区 | 欧美第一页在线观看 | 欧美日本一区二区视频在线播放 | 欧美aⅴ激情视频 | 一级一片一a一片 | 五月婷婷爱六月久 | 国产精品免费视频一区二区三区 | 日本中文字 | 欧美性爱大片在线播放 | 日韩午夜免费超清视频在线观看 | 99精品视 | 一区二区三区在线观看免费 | 中文字幕一区二区不卡 | 亚洲天堂| 日韩精品一线二线三线优势 | 成全在线观看免费完整 | 亚洲成a人片在线观看 | 91午夜在线免费观看小视频 | 黑巨茎大战俄罗斯美 | 免费国产一级生活片 | 欧美日韩大片在 | 欧美国产日韩另类综合一区 | 亚洲一区网站 | 欧美大香线蕉 | 最近2025最新中文字幕免费看 | 国产精品黄日韩成人黄亚洲 | 老女人擦 | 亚洲最大综合精品 | 国产精品一区在线免费观看 | 国产精品视频高清在线播放 | 香蕉国产一区二区 | 亚洲欧美日韩在线一区二区三区 | 国产特黄a三级三级三级 | 国产精品无内丝袜高跟鞋 | 国产又污又爽又黄又刺激网站 | 国产精品亚洲综合色区韩国 | 日本视频网站在线www色 | 久热这里只有精品99在线观看 | 亚洲高清heyzo | 国产日产欧产精品精品app | 成人午夜一区二区三区视频 | 国产精品成人v | 小说区图片区激情区视频区 | 欧美日韩国产视频 | 欧美黑人又 | 99香蕉精品视频在线观看 | 成人全部免费观看1314色 | 强奷乱码中文字幕熟女导航 | 一区二区三区国产亚洲网站 | 国产激情视频在线观看 | 欧美一级在线全免费 | 日本免费一区二区三区在线看 | 国产福利精品在线观看 | 91免费国产在线观看尤物 | 成人黄污爽爽在线 | 三年片在线观看免费播放大全电影 | 在线观看亚洲精品福利片 | 丰满大乳奶做爰ⅹxx视频小说 | 日韩aⅴ在线观看 | 开拓亚洲色偷偷偷综合网的同时 | 操人视频网站 | 国产精品视频一区二区三区 | 精品国产aⅴ一区天美传媒 欧美日本二区 | 国内精品伊 | 午夜国产免费 | 手机免费在线追剧网站 | 欧美日韩不卡 | 国产欧美综合在线 | 日韩专区在线 | 成年人免费的 | 国产视频aⅴ在线播放 | 国产精品美女www爽爽爽视频 | 国内高清久 | 爱丫爱丫影院在线看免费 | 女性高爱潮免费有 | 男人添女人30分钟免费 | 欧美产国产 | 欧美xxxx极品bbw | 亚洲天堂日韩中文 | 国产片免费 | 欧美自拍另类综合专区 | 国产精品中文字幕老牛影视 | 日韩精品电影亚洲一区 | 国产高清在线a免费视频观看 | 久免费精品高清 | 日韩乱伦一二三区 | 国产欧美制服丝袜 | 激情五月天色五月 | 男女猛烈激情xx00免费视频 | 日本高清中文字幕一区二区三区 | 第一区二区香蕉 | 国产大学生喷 | 亚洲高清二区 | 欧美三级成人观看 | 欧美精品黄页在线视频高清 | 日韩欧美亚洲国产永久在线观看 | 美丽的姑娘高清版在线观看 | 中文字幕免费高清电视剧网站 | 亚洲日本一区二区一本一道 | 91福利精品国产自产在线 | 国语精品91自产拍在线 | 欧美日韩一区二区三区视频在 | 国产日本欧美亚洲日韩 | 国产特黄一级aa在线 | 国产免费毛不卡片 | 国产亚洲日韩网曝欧美台湾 | 日本妇人 | 国产视频一区二区三区四区在线 | 伊人色综合网 | 日本高清无卡一区二区三区 | 亚洲人午夜射精精 | 日本那些又骚又爽的视频 | gogogo高清在线观看免费 | 538国产精品一区二区在线 | 欧美日本亚欧在线观看 | 在线鲁鲁视频免费观看 | 日韩欧免费一区二区三区 | 日韩在线理伦片免费观看 | 色一情一区二区三区 | 亚洲精品综合在线影院 | 国产亚洲精品线观看不卡无毒 | 国产精品极品美女自在线观看免 | 亚洲日韩看片 | 国产偷窥熟 | 国产精品免费观看在线观看 | 91精品国产亚一区二区三区 | 成人免费国产片 | 亚洲春色在线视频 | 日本国产美国日韩欧美 | 国产在线短视频 | 巨爆中文字幕乳爆区巨爆 | 欧美一区二区自偷自拍视频 | 免费v片在线观看 | 国产一级免费在线观看 | 国内精品视频一区二区三区八戒 | 欧美成精品视频在线观看 | 国产丁香婷婷在线亚洲视频 | 男女爽爽午夜18 | 在线亚洲精品第一 | 5678电影网午夜理论片 | 免费观看色色影视特级 | 欧美乱妇高清视频免欢看关 | 果冻传媒视频在线 | 国产一区日韩二区欧美三 | 亚洲日本一区二区一本一道 | 国产精品欧美专区在线观看 | 国产视频aⅴ在线播放 | 综合网国产国产人 | 一级一片免费播放 | 亚洲国产精品综合小说图片区 | 日本国产精品中文字幕 | 亚洲se在线播放 | 日本失禁成 | 99热婷婷国产精品综合 | 国产精品宾馆在线精品酒店↗ | 精品国产日韩一区二区三区 | 91综合专区国产在线 | 亚洲精品亚洲人成在线播放 | 免费va国产高清大片在线 | 国产网红女主播精品视频 | 日韩一三区在 | 青青手机国产在线视频 | 欧美视频在线视频精品 | 国产你懂 | 国产在线乱子伦一区 | 干干日日日 | 五月天亚洲成女图区 | 91大神在线精品视频一区 | 国产福利在线观看免费第一福利 | 国产亚洲日本一区二区三区 | 99xxxx日本| 亚洲国产中文字幕 | 日韩不卡高清区二区三区 | 国产伊人精品导航 | 成人欧美一| 九九精品视频 | 国产一区二区三区四区精 | 亚洲日本中 | 亚洲无线码高清在线观看 | 福利区在| 国产真实露脸乱子伦 | 欧美a级情欲片在线观看免费 | 国产国产人免费观看在线视频 | 国产日韩欧美在线 | 精品一区二区三区盗摄 | 国产欧美在线观看精品一区二区 | 亚洲精品乱无伦国产 | 91影院免费 | 国产一级精品精冻电话 | 国产精品手机免费 | 高清一区二区三区欧美激情 | 三年片免费观看影视大全视频 | 日本中文字幕乱码专区 | 国产在线拍小情侣国产拍拍偷 | 中文精品久| 国产精品日韩专区 | 成+人+黄+色+免费观看 | 日本乱理伦片在线观看中文字幕 | 欧美日韩国产中文字幕在线 | 国产精品老熟女露脸视频 | 91免费网址 | a级国产乱理论片在线播放 国产精品日韩精品在线 | 国产乱伦一区二区三区 | 国产+欧美+激情 | 精品国产日韩亚洲一区在线 | 欧美第一页网站最新 | 一个人看 | 国产精品亚洲自在线播放页码 | 中文字幕一区二区三区精品 | 日本一二三区成人 | 日本三区四区免 | 日韩欧美一区二区三区免费观看 | 九九热精品视频在线观看 | 亚欧乱色国产精品免费视频 | 国产欧美日韩va另类在线播放 | 秋霞影视免费播放手机版 | 免费人成视频在线观看网站 | 国产免费日本高清 | 欧美一性一乱 | 国产精品白丝喷水在线观看 | 亚洲色国产电 | 日韩乱伦一二三区 | 免费观看天天看高清影视在线 | 天天射天天爱天天射干 | 日韩精品在线观看免费 | 中文第一页在线视频 | 欧美一区二区手机在线观看视频 | 精品一二三四区 | 成人国产午夜在线视频 | 欧美老妇交乱视频在 | 精品国产午夜理论片在线 | 日本高清视频在线网站 | 一二三四影视在线看片免费 | 大陆老熟女洗澡性视频tube | 精品国产自产在线 | 97国产精品系列在线观看 | 国产精品人一成在线观看 | 77色午夜成人影院综合网 | 精品影片 | 91成人精品一区二区三区四区 | 九九精品成| 任你躁国语自产一区在 | 久视频国产精品免费观看 | 另类激情文学一 | 国产男女猛烈视频在线观看 | 亚洲欧美日韩另类精品一区二 | 欧美性白人极品hd | 三三影院 | 欧美一区二区电影免费观看 | 日韩欧美精品在线一区二区 | 免费影视资源大全 | 韩国一级a大片在线观看 | 97香蕉碰碰 | 国内一点不卡在 | 国产呦系列(771vip观看) | 精品国产网红福利在线观看 | 国产在线播放日本正在 | 国产男女猛烈 | 入口91 | 日韩精品一区二区三区中文字幕 | 免费国产偷人三大片视频 | 国产国产人免费人成成免视频 | 欧美日韩中文字幕视频 | 免费人成视在线观看不卡 | 视频在线观看一区 | 日韩精品在线观看免费 | 青青草免费国产视频网站 | 欧美性videos高清 | 欧美日韩成人影片在线 | 日韩成人激情影院 | 日本一级a大片在线观 | 亚洲香蕉中文日韩v日本 | 亚洲中文字幕精品有码在线 | 欧美激情精品中文字幕 | 欧美性xxxx极品高清 | 国产精品一区二区三区免费视频 | 亚洲中文娱乐网在线观看 | 国产午夜在线观看免费 | 国产精品偷窥熟女精品视频 | 亚洲熟女丰满多毛xxxxx | 日本三级香港三级人妇99 | 亚洲欧美国产日产综合不卡 | 国产亚洲精品a在线观看 | 噼里啪啦电影在线观看免费 | 日韩v欧美v中文在线 | 国产深夜在线免费观看 | 日韩精品一区二区三区免费视频 | 欧美激情第1页 | 国产区欧美| 在线观看日本亚洲一区 | 日本强乱视频在线 | 日本免费高清线视频免费 | 在线观看免费视频网站a站 国产1区 | 国产人摸人啪视频 | 免费三级在线观看中文字幕 | 污18在线观看视频 | 日本韩国偷拍视频对白不卡高清精 | 99爱国产精品免费高清在线观看 | 伦理电影网在线观看 | 日本不无在线一区二区三区 | 国产精品激情自拍 | 欧美va香蕉在线 | 国产亚韩欧美联合在线 | 拍拍拍无挡国产精品 | 操你啦日本阿v网站在线观看 | 国产精品va在线观看无 | 国产护士视频在线观看 | 国产乱之伦露脸对白xxxx | 91免费入口 | 亚洲一区免| 国语对白精品视频在 | 99re国产在线观看 | 大地资源高清日本 | 草莓视频污污版 | 国产一卡三卡四卡无卡 | 精品免费观在线国产 | 日韩成熟熟女精品 | 国产国产亚洲高清 | 91手机在线看片 | 日韩综合第二区2区3一区 | 视频免费1区二区三区 | 日韩专区亚洲精品欧美专区 | 成人禁在线观看午 | 国产香蕉尹人视频 | 91香蕉国产在线观看免费永久 | 美式影院 | 国产又粗又黄又爽的视频 | 日本留學代辦 | 福利91| 网友自拍区在线视频精品 | 国产欧美日韩夜夜爽人人 | 又粗又大又黄又硬高清视频 | 亚欧免费大片在线观看 | 欧美日韩国产色 | 欧美区一区二区三区在线视频 | 成人性欧美 | 欧美伦费免费全部午夜最新 | 羞羞影院午夜男女爽爽免费 | 玖玖源资源站中文字幕一区二 | 国产精品亚洲精品专区 | 日韩午夜剧场免费网站观看 | 欧美喷潮极限另类视频 | 果冻传媒网站入口 | 免费高清一二三区日本 | 7799精品视频天天综合 | 欧美国产日韩一区二区三区 | 欧美v亚洲v日韩v流畅在线 | 国产精品高清免费网站电影 | 欧美国产日韩极速在线 | 欧美国产精品三级a三级三级 | 91免费永久国产在线观看 | 陪读麻麻张开腿让我爽了一夜 | 日韩欧美在线视频一区二区 | 欧美成视频无需播放器 | 国产精品一区二区免费16 | 日韩中文字幕在线 | 国产精品国产高清 | 国产一区二区在线不卡 | 日韩精品国产一区二区三区 | 欧美日韩第一区第138页 | 福利在线视频欧美 | 日本在线观看免费中文字幕 | 精品日产卡一卡二卡国色天香 | 午夜性色一区二区三区不卡视频 | 国产精品敌一区二区三区 | 国产人妖视频一区在线观看 | 日本最新高清不卡一区二区 | 亚洲欧美日韩精品中文乱码 | 亚洲动作一 | 亚洲精品国产精品精 | 欧美精品国产日韩综合在线 | 韩日精品在线观看 | 国产高清一区二区三区免费视频 | 欧美日韩国产一区国产二区 | 91精品国产高清91久 | 91情侣在线精品 | 国产精品免费一区二区 | 99热国产亚洲精品 | 国偷自产一区二区三区蜜臀 | 妺妺窝人体色www在线观看 | 亚洲日韩国产欧 | 噼里啪啦| 国产一区精品在线观看 | 欧美一区二区自偷自拍视频 | 免费vip电影 | 91成人影院未满十八勿入 | 女人与公驹 | 国产99综合精品一区二区 | 日韩一区精品视频在线看 | 国产精品永久免费视频观看 | 日本乱子伦一 | 久青青视频精品免费观看 | 国产l精品国产亚洲区 | 囯产精品一区二区三区乱码 | 视频一二亚洲国产二区 |