日韩福利首页在线观看网站-日韩福利免费网站视频在线-日韩福利局二区视频-日韩福利-日韩二区在线-日韩二区三区四区-日韩二区三-日韩电影中文字幕

半岛外围网上直营

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

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

概述:您想使用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@ke049m.cn

文章轉載自:

為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 一区二区三区a | 男女爽爽午 | aⅴ中文字幕在线日本 | 成人熟女日韩欧美综合 | 亚洲欧美suv精品 | 国产中文字幕永久在线观看 | 色综合伊人色综合网站 | 日韩国产欧美二区手机在线 | 国产精品亚洲五月天高清 | 精品免费人成视 | 精品欧美激情在线观看 | 综合色就爱涩涩涩综合婷婷 | 高清欧美日韩一区二区三区在线 | 在线日本一区二区免费观看 | 99精品视频在线观看婷婷 | 欧美日韩欧美一区 | 国产l精品国产亚洲区在线观 | 手机大看福利永久国产 | 国产又色又亚洲免费小视频 | 亚洲最大综合精品 | 国产在线乱码 | 日韩精品欧美精品国产精品 | 亚洲色中文字幕先锋 | 48国产吹潮在线观看 | 精品日韩成人欧美 | 国产va小视频在线观看 | 国产老熟女乱子人伦视频 | 牛牛视频一区二区三区 | 国产亚洲视频中文字幕97精品 | 国产一区二区色淫影院 | 免费国产91欧美va一区二区 | 国产最新精品 | 日本高清视频一区 | 区二区欧美性插b在线视频网站 | 亚洲人成aⅴ在线播放 | 欧美日韩亚洲一区二区精品 | 区二区三区不卡 | 欧美日韩亚洲国产精品自拍 | 国产日韩欧美视频成人 | 天天综合网天天综合 | 蜜臀国产在线视频 | 污免费网站入口 | 中文字幕电影一区二区 | 亚洲区小说区 | 久热国产精品视频一区二区三区 | 成人精品日本亚洲电影院电影 | 久99热这里只有精品 | 国产亚洲精品综 | 国产精品成人a在线观看 | 精品视频国产一区二区 | 成人性毛 | 精品国产乱子伦一区二区三区 | 大陆老熟女洗澡性视频tube | 日本丰满护士bbw | 新片速递 | 野花免费观看日本一个电影 | 日韩aⅴ精品一区二区视频高清 | 美女视频写真网站 | 久你欧洲野花视频欧洲1 | 最新国产精品 | 最近播放中文版在线观看免费 | 欧美日韩一区二区不卡三区 | 欧美校园激 | 污污污污污污网站 | 男人本色国产在线综合 | 五月丁香婷婷综合影院 | 九九视频在线观看免费 | 亚洲va| 韩国日本免费高清观看 | 免费ā片在线 | 精品女同一区二区三区免费站 | 国产午夜草莓视 | 丰满岳乱一区二区三区在线观看 | 国产91色在线中文电影 | 视频一区在线观看 | 99精品国产最新观看网址 | 日韩福利写真福利在线观看 | 亚洲va综合va国产产va中文 | 国产在线精品拍揄自揄免费 | a级片免费播放 | 成人影视网 | 亚洲一区制服丝袜 | 91极品视频在线观看 | 成人动漫在线观看网站 | 国产性色强伦免费视频 | 国产精品视频第一区二区三区 | 精品国产sm捆绑最大网免费站 | 日本丰满bbwbbw | 亚洲免费一区二区 | 国产一二 | 亚洲国产精品一区二区九九 | 国产精品区在 | 国产宅男z资| 日韩高清在线播放不卡 | 夫妇交换| 国产午夜高清高清在线观看 | 精品一区二区三区视频在线 | 日本在线一区二 | 99这里只有精品 | 偷拍欧美亚洲第二页 | 国产日b | 国产精品素人福利 | 97热久| 欧美日韩在线播一区二区三区 | 亚洲一区在线播放 | 天美麻花星空大全在线观看免费 | 国产精品不卡视频 | 91视频亚洲电影 | 国产97在线视频 | 午夜男女羞羞爽爽爽视 | 国产sm重味| 国产最新进 | 亚洲卡通欧美制服中文 | 国产亚洲欧洲日韩在线91区 | 国产揄拍视频在线观看激情五 | 99精品视频免费在线观看 | 国产v精品欧美精品v日韩 | 欧美日韩国产综合欧美 | 国产l精品国产亚洲区在线观看 | 不卡视频免费 | 欧美日韩性高爱潮视频 | 免费看黑人 | 日本一二区在线观看 | 国产日韩一区二区三区在线观看 | 91精品对白刺激国产在线 | 亚洲伊人精品酒店 | 亚洲综合激情五月丁香六月 | 乱码国产精品 | 一区二区三区a | 日韩精品在线观看 | 成人免费观看网欧美片 | 在线日本有码中文字幕 | 日本视频一区二区三区 | 91精品一区二区三区蜜桃 | 美女诱惑中文一区二区三区 | 亚洲成a人片在线观看高清 日韩亚洲国 | 国精产品一区一区三区有 | 午夜欧美性视频在线播放 | 国产欧美在线日韩 | 精品一区二区精品在线蜜桃 | 91精品国产免费网站 | 色五月播五月开心五月激 | 国产在线精品成人一区二区三区 | 欧美一级别 | 国产丝袜视频一区二区三区 | 国产一区激情在线播放 | 成人做爰视频www爽爽爽文章 | 99国产在 | 91啪在线观看国产在线 | 国产精品福利电影一区二区 | 日韩一本二本在线观看视频 | 日本aa在线观看 | 香港三级澳门三级欧洲三级 | 玖玖综合九九在线看 | | 日本在线播放一区 | 精品综合在线观看! | 欧美日本一区二区视频在线播放 | 欧美日韩中文国产va另类电影 | 国产精品爽爽va在线 | 最近免费中文字幕大全免费版视频 | 国产精品免费入口视频 | 国产999精品视频 | 日本一区二区三区在线播 | 国产亚洲欧美日韩在线看片 | 国产免费一区二区三区在线看 | 免费的精品一区二区三区 | 欧美国产日韩精品 | 国产高清一区二区三区四区 | 亚洲精品日韩三区 | 欧美日韩另类 | 三级三级三级a级全黄三 | 日韩欧美中文制服在线电影 | 欧美处破视频免费观看 | 国产香线蕉手机视频在线观看 | 国产69成人午夜福利在线 | 国产电影一区二区三区 | 日本乱理伦片在线观看中文字幕 | 欧美日韩亚洲成色二本道三区 | 日本aⅴ永久免费网站www | 亚州高清国产āv视频 | 欧美国产激情视频一区 | 91午夜福利国产秒播在线观看 | 国产区免费视频在线观看 | 欧美一级精品免费播放 | 国家人类遗传资源共享服务平台 | 国产日本欧美一区二区竹菊 | 韩国理论大全 | 国产精品偷窥 | 99青青草 | 日韩高清1区2区 | 国产欧美日韩夜夜爽人人 | 欧洲女同互添互慰在线观看 | 日韩亚洲国产欧美精品 | 日本午夜一级视频 | 欧美日韩国产免费一区二 | 美女福利 | 日韩丝袜中文字幕在线观看 | 日本护士视频欧美无砖专区 | 国产欧美一区二区樱花在线观看 | 国产亚洲精品欧美日韩在线 | 欧洲成人免费高清视频 | 亚洲精品∧v在线观看 | 国产欧美日韩综合精品二区 | 国产乱妇乱子在线视频 | 国产又色又爽又黄又刺激的网站 | 欧美乱片中文字幕 | 日韩国产乱码一区中文字幕 | 区三区在线观看 | 成年人在线视频第一页 | 亚洲欧美另类在线图片区 | 国产亚洲精品不卡在线 | 97超级碰碰碰碰精品 | 国产第二页页在线播放 | 干干干操操操 | 国产欧美日韩午夜在线观看 | 国产第一福利136视频导航 | 国产自在 | 国产线播放免费人成视频播放 | 亚洲一区二区高清 | 亚洲精品乱拍国产一区二区三区 | 亚洲欧美日韩中文字幕在线不卡 | 中文字幕免费在线观看 | 又湿又紧又大又爽又a视频 精品高清三级乱伦 | 乌鸦传媒| 91免费精品国自产在线不卡 | 东京道一本热大交乱 | 欧美日韩四区在线 | 97超级碰在线观看免费 | 免费国产精品视频 | 国产亚洲播放在线一区 | 51黑料在线吃瓜婷 | 国产精品日韩精品日本精品 | 天天综合7799精品影视 | 年轻的母亲4韩剧免费中文版 | 日本中文字幕高清99 | 中文韩国午夜理伦三级好看 | aaa午夜级特黄日本大片 | 成人亚洲性情网站w | 在线免费看影视网站 | 国产美女一区二区丝袜美腿 | 国产一区二区免费播放 | 国产亚洲人成a | 国产在线观看成永久视频 | 91黑料精| 国产欧美日韩精品一区二区三区 | 欧美日韩专区 | 日韩欧美色激情 | 欧美在线精品永久免费 | 香蕉有码在线视频发布 | 女仆色在线 | 国产亚洲欧美在线播放网站 | 国产精品综合亚洲91成人 | 欧美精品性夜视频在线观看 | 国产乱子经典视频在线 | 日本最大色倩网站www免费 | 99国产在线精品国自产在 | 级欧美一级一级国产 | 久热九九| 日本中文字幕熟女 | 在线观看亚洲h视频 | 国产高跟鞋丝袜在线观看 | 国产+在 | 欧美a级情欲片手机在线播放 | 日本一二三区视频 | 国产在线精品免费一区 | 国产白丝jk学生在线播放 | 国产一级特黄aa大片线观看 | 欧美a级情欲片手机在线播放 | 亚洲影院| 精品国产拍国产天天人 | 精品自拍视频曝光 | 亚洲韩国日本欧美一区二区三区 | 国产一区二区在线视频观看 | 中文字幕亚洲无线码在一区 | 九色精品高清在线播放 | 国产小视频免费在线观看 | 一区二区三区四区在线播放视频 | 99热这里 | 亚洲天码中字 | 高清影视 | 国产在线一卡2卡三卡 | 国内美女91福利在线观看 | 精品熟女视频一区二区三区国产 | bt天堂国产狂喷潮在线观看 | 国产全肉乱妇杂乱视频 | 日韩在线一区二区三区观 | 中文在线а天堂中文在线新版 | 欧洲精品免费一区二区三区 | 国产欧美视频在线 | 国产高清免费在线播放 | 日韩在线视频不卡视频 | 国产91免费视频 | 韩国三级激情 | 国产精品成人一区二区三区 | 一区一区三区产品乱码 | 日韩精品大秀视频在线观看 | 国产精品制服丝袜另类 | 大地资源在线观看免费中文版 | 国产精品1区2区3区在线播放 | 女人让男人桶 | 国产一级大片免费 | 91免费版下载 | 99精品国产福利片在线观看 | 国产真实露脸精彩对白91 | 成年网站免费入口 | 福利www在线观看 | 国产高清在线不卡一区二区三区 | 国产91免费 | 精品国产女主播在线观看 | 亚洲理论电影在线观 | 国产精品亚洲精品日韩已满 | 美女视频在线永久免费观看 | 一本之道在线观看不卡 | 国产色婷| 国产全部 | 国产在线观看精品一区二区三 | 国产情侣在线视频播放 | 亚洲911精品一区二区 | 女男羞羞视频网站免费 | 精品日韩亚洲欧美高清a | aa免费视频观看网站 | 色涩网站在线 | 国产精品永久免费自在线观看 | 精品录音国产一区在线 | 亚洲精品人体大胆 | 欧洲一卡2| 欧美亚洲日本国产黑白 | 91精品啪在线 | 国产呦在线观看欧美一区 | 国产拍揄 | 日韩视频在线播放一区二区三区 | 日韩欧美国产精品第一页不卡 | 欧美精品一区二区三区不卡网 | 欧美产国产 | 精品在线观看 | 秋霞国产午夜 | 欧美伦理电影大全 | 国产草莓社区在线观看 | 国产又色又爽不遮挡的视频 | 亚洲欧美综合另类 | 国产高清视频一区免费观看 | 一二三区在线观看 | gogogo高清视频高清大全 | 日本三级a∨在 | 国产精品欧美一区二区在线观看 | 凹凸导航午夜福利 | 免费国产va在线观看中文字 | 国产老熟女ass | 好看的电视剧电影 | 一级特黄aaa大片在线观看 | 日韩在线视频不卡一区二区三 | 91污在线观 | 日韩精品三区 | 欧美亚洲制服 | 九九在线精品视频 | 国产精品一区二区三区 | 日本黄页网站大 | 亚洲精品国产精品 | 一区二区视频在线观看 | 国内20 | 欧美高清日韩在线 | 播放灌醉水嫩大学生国内精品 | 99人精品福利在线观看 | 亚洲精品视频在线观看 | 99在线视频免费观看 | 欧美激情在线播 | 国产精品亚洲欧美日韩性色 | 国产拍揄自揄精品短视频 | 亚洲国产中文国产一区二区三区 | 欧美一级别 | 亚洲日本中文字幕乱码在线电影 | 欧美日韩国产偷拍 | 日本一区二区三区在线观看入口 | 欧美激情视频精品一区二区 | 亚洲欧美综合另类中字 | 亚洲国产精品高清在线第1页 | 青苹果乐园 | 自拍偷拍| 欧美激情000ⅹxx同性 | 国产91精品免费专区 | 日韩一卡2| 欧美日韩午夜福利一区二区 | 国产专区第一页在线看 | 国产免费福利在线视频 | 国产激情中文在线 | 国产激情精品一 | 国产看片一区二区三区 | 国产精品亲子乱子伦xxxx | 日本欧美视频在线 | 色涩网站在线 | 乱码一码二码三码四码狼人 | 亚洲欧美另类国产综合 | 欧美a级成人 | 精品一区二区免费视频 | 国产超级va| 中文字幕精品一区 | 欧美成a | 国产精品自在线观看剧情 | 日朝欧美亚洲精品 | 国产免费一区二区三区在线观 | 爱看电影网 | 欧美午夜激情免费看 | 国产精品亚洲综合一区在 | 美日韩制服中文字幕视频 | 国产日本欧美一本在线观看 | 亚洲第一国产综合 | 豆国产96在线 | 美国十次导航 | 精品日韩网址导航 | 欧美一级精品免费播放 | 国产卡一卡三卡 | 国产专区在线播放 | 草逼视频网站 | 国产在线不卡免费高清dvd | 国产精品碰碰现在自 | 国产中文字幕 | 欧美高清一区二区三区欧美 | 国产欧美日韩在线一 | 成a人片在线观看日本 | 国语自产精品视频在视频 | 欧美日韩美女精品一区二区 | 国产一级一片免费播放放 | 在线观看国产日韩欧美 | 免费人成年短视频在线观看网 | 另类国产女同在线视频 | 一区二区三区成人 | 三区视频网站 | 99这里都是精品重查 | 亚洲日韩色在 | gogogo高清| 在线亚洲v日韩v | 中文字幕日本有码视频在线 | 因为太怕痛就全点防御力了 | 欧洲性爱在线观看 | 日韩在线不卡 | 国产精品午夜国产小视频 | 国产99| 日韩经典视频 | 精品免费观在线国产 | 欧美亚洲日韩aⅴ在线观看 在线综合亚洲欧美日韩手机版 | 五月网站| 精品欧美国产一区二区三区不卡 | 日韩v手机在线免费观看亚洲 | 欧美激情片在线观 | 99视频在线观看 | 成人免费ā片在线观看 | 国产欧美极品综合一区二区 | a人片在线观看苍苍影院 | hd护士18| 国产精品va欧美精品 | 热门电影电视剧短剧免费在线观看 | 超级媚药痉 | 污污污视频在线免费观看 | 精品国产二区三区不卡毛 | 国产精彩香蕉在线视频 | 91国在线啪精品一区 | 免费观看一区二区三区 | 日韩欧美在线播放视频 | 影音先锋亚洲综合小说在线 | 第一页在线观 | 午夜三级中文不 | 欧美喷潮极限另类视频 | 欧美午夜视频一区 | 国产精品黄大片在线播放 | 天天射网 | 91大神 | 国产资源视频 | 精品影院 | 亚洲a视频在线欧美国产 | 日本一夲道dvd在线 国产精品不卡免费视频 | 国产区成人精品视频 | 在线观看亚洲h视频 | 亚洲成a人片在线 | 午夜激情经典青柠影院 | 被暴雨淋湿 | 日韩亚洲国产一区二区 | 精品videossex国产 | 免费动漫成本人视频网站 | 欧美日韩一区二区视频免费看 | 国产亚洲一路线二路线高质量 | 亚洲国产精品一区第二页 | 九九热99久 | 亚洲精品宾馆在线精品酒店 | 国产精品又大又爽又硬 | 亚洲高清国产一区二区三区电影 | 国产最新精品盗摄视频 | 女女同性一 | 精品国产理论在线观看不卡 | 亚洲欧美日韩国 | 国产第一页屁 | 国产91蜜臀精品对白在线播放 | 国产精品香港三级国产电影 | 成人精品亚洲欧美日韩 | 精品动漫 | 911亚洲精品bbw男男 | 精品一区二区三区四区在线观 | 成年在线影视免费观看 | 日本成年人黄a大片 | 日韩欧美中文字幕一区 | 国际b站免费视频入 | 国产特黄特色大片免费 | 日本精品视频在线观看 | 亚洲人成网址在线观看 | 亚洲码在线观看 | 欧美日韩国产免费一区二 | 玩弄老太婆的屁股眼 | 99久热只有精品视频免费看 | 欧美激情区二区一区三 | 亚洲福利一区福利三区 | 亚洲国产一区视频 | 成人午夜看片在线观看 | 国产女精品 | 91看片在线观看 | 99久热re| 国产亚洲欧洲精品一区二区三区 | 国产激情丁香在线观看网址大全 | 精品视频91 | 成全免费观看高清电影 | 天堂tv亚洲tv日本tv不卡 | 日本偷窥| 日本不卡中文字幕免费 | 国产欧美激情亚洲情 | 欧美成aⅴ人高清免费观看 亚洲成a人片在线v 国产日韩传媒一区二区三区四区 | 日韩丝袜亚洲国产欧美一区 | 欧美日韩精品一区二区 | 中文字幕日本在线 | 51福利国产在线观看午夜天堂 | 国产在线精品国自产拍影 | 99精品国产高清一区 | 国产精品成人一区二区不卡 | 成人爽免费视频在线观看 | 亚洲免费在线观看一区二区 | 亚洲欧美日韩中文播放 | 国产男女猛烈 | 欧美大胆a | 老熟女另类xxx精品视频 | 大陆国产精品 | 日本九九热在线观看官网 | 最近高清中文在线字幕在线观看 | 精品一区二区三区影院在线午夜 | 日韩欧美视频一区二区三区 | bt天堂国产狂喷潮在线观看 | 亚洲精品v欧 | 国产美女一级做视频爱 | 电影天堂| 91天堂国产在线播放 | 国产香蕉人人干干 | 欧美日韩永久免费看看视频 | 国产欧美日韩va另类在线播放 | 免费观看91视频 | 日韩在线观看免费完整版 | 国产在线看片免费视频 | 亚洲开心婷婷中文字幕 | 性生大片| 国产精品一区日韩露脸 | 国产精品亚洲精品爽爽 | 看全色黄大色黄大片女爽一黄 | 日韩精品国产一区二区三区 | 成人欧美日韩一区 | 日本高清一区二区三区不卡免 | 成+人+亚洲+综合天堂 | 亚洲好视频| 精国精品国产 | 国产精品成人午夜欧美日韩 | 成人app破解不限次数 | 不卡免费国产 | 两性午夜刺 | 欧美日韩免费手机在线 | 77色午夜成人影院综合网 | 善良的么公和熄日本中文字幕 | 国产在线一区二区三区四区居文沛 | 国内精品在线一区二区 | 欧美日皮片 | 精品国产aⅴ一区二区三区 国产a免 | 日韩欧美中文字幕在线三区 | 精品成品国色天香卡一卡三 | 国产青草伊伊在线观看 | 男同桌上课时狂揉我下面污文 | 国产一区二区在线视频观看 | 亚洲天堂激情在线看 | 97亚洲国产中文日韩在线人 | 国产精品高清一区二区不卡乱 | 91精品在线二区 | 日本欧美三级r级国产在线 日韩精品国产一区二区三区 | 绿巨人视频在线观看www | 精品日产卡一卡二卡三入口 | 中文字幕日韩一区 | 国色天香精品亚洲精品 | 在线精品欧 | 成人国产精品高清在线观看 | 欧美极品一区二区三区在线观看 | 国内外成人免 | 欧美中文字幕乱伦视频 | 国内精品手机在线观看视频 | 欧美午夜成午夜成年片在线观看 | 91精品综合| 国产亚洲新免费视 | 最近免费中文字幕视频高清在线看 | 免费国产高清视频 | 国产高颜值露脸在线观看 | 日本护士毛茸茸xx | 精品一区二区三区高清免费不 | 欧美性生交大片免费看 | 欧美日韩一区二区三区高清在线 | 337p日本大胆欧美人 | 成年人网站在线免费观看 | 日国产一区三区三区在线观看 | 中文字幕乱伦视频 | 国产黄在线观看免费观看 | 精品国产乱码 | 国产网站免费精品网站 | 91九色老熟女 | 14表妺毛还没长齐 | 国产中文一区二区三区 | 成全视频高清免费观看电视剧 | 免费黃色三級片在线观看18 | 中国精品国产yw | 亚洲欧美日韩国产精品一区二 | 国产在线精品一区二区在线观看 | 欧美日本一区二区视频在线观看 | 日本中文字幕一区二区高清 | 成人福利午夜ed2k | 日本a∨ | 欧美国产日韩二区 | 日韩中文字幕a加勒 | 不一样的国产爽歪歪视频 | 成全在线观看免费观看第一集 | 午夜福免费福利在线观看 | 精品自拍小视频 | 三年片在线观看免费观看大全 | 亚洲精品乱拍国产一区二区三区 | 国产欧美在线高清 | 国产福利在线观看精品 | 热播电影电视剧 | 国产老子午夜福利 | 91蝌蚪视| 写真福利理论片在线播放 | 国产女主播 | 五月婷婷中文字 | 国产午夜福利电影免费在线观看 | 水蜜桃亚洲一二三四在线 | 国产精品亚洲午夜不卡 | 国产精品美 | 欧美jizzhd精品欧美 | 去卫生间啪到腿软 | 国产精品香蕉夜间视频免费播放 | 国产一级二级免费观看 | 日本三级在线视频 | 在线观看亚洲一区二区三区 | 大卡三卡免费 | 欧美乱片中文字幕 | 欧美亚洲另 | 污污污国 | gogogo手机高清在线观看 | 91精品综合 | 日本精品99一区二区不卡 | 国产日本亚洲一 | 亚洲日韩天堂网中文字幕 | 日韩欧美一区二区三区免费看 | 国产v欧美v日韩v综合精品 | 欧美日韩成人va精品一 | 亚洲欧洲国产日产综合综合 | 国产亚洲视频在线播放7t | 欧美精品1区国新欲乱视频 国产精品一区二区无线 | 欧美一级性爱视屏 | 国产理论高清一卡二卡三卡 | 亚洲欧美日韩国产精品一区二 | 日本中文字幕乱码aa高清电影 | 欧美亚洲范冰冰与中字 | 成人午夜视频在线视频 | 女人被黑人巨大进入 | 日韩在线一区二区三区观看 | 91黑料吃瓜在线观看 | 久视频国产精品免费观看 | 97碰公| 欧美电影一区二区三区 | 色一情一乱一伦 | 日韩一卡二卡3 | 好看的高清电影大全 | 精品国产网站在线免费观看 | 亚洲一区二区三区精品动漫 | 青草青草久热精品视频在线观看 | 亚洲综合 | 国产日韩亚洲一区二区 | 夜夜爽一区二区三 | 三极网站| 亚洲国产一区视频 | 国产xx00在线观看 | 亚洲日本一线产区和二线 | 国产不卡一区不卡二区不卡三区 | 久99久热只有精品国产澳门 | 日产无人区一线二 | 欧美v国产v亚洲v日韩九九 | 天美麻花星空视 | 91精品一区日韩欧美 | 国产精品一一老牛影视视 | 国产一区二区三区在线观看视频 | 国内在线视频精品 | 国产xxxx视频在线观看软件 | 欧美日韩午夜在线视频 | 亚洲国产精品va在线观看香蕉 | 欧美肥妇bwbwbwbxx | 日本中文一 | 国产hs视频在线观看 | 99热在线观看 | 国产精品视频免费网站 | 欧美性白人极 | 国产欧美日韩一区二区搜索 | 成在线人永久免费播放视频 | 99视频在线播放 | 红杏亚洲| 亚洲日韩欧美一区二区在线 | 国产精品激情一区在线观看 | 婷婷亚洲综合一区二区 | 综合激情在线 | 免费无人区一码二码乱码区别在哪 | 亚洲小说区图片区另类春色 | 日本精品中文字幕在线 | 91精品在线免费观看 | 欧美日韩资源 | 国产精品看高国产精品不卡 | 最新国产精品 | 精品尤物在 | 亚洲一区二区三区下卡精品 | 日本乱妇乱子视频网站 | 国产卡一卡二无线乱码 | 天堂网www中文天堂在线 | 国产妇女视频免费 | 91精品国产免费青青碰在线 | 国产在线观看色窝网 | 在线观看免费人成视频国产 | 国产精品成人观看视 | 99精品国产兔费观看66 | 国产又黄又爽刺激视频 | 日韩女优在线观看 | 最新版本直播app | 91电影在线观看 | 精品国产乱码aaa一区二区 | 秋霞影视免费播放手机版 | 欧美日韩亚洲一区 | 日韩午夜激情网址在线观看 | 国产又粗又硬又大爽黄老大爷视 | 日韩欧美一区二区三区综学生 | 国产制服 | 成人app| 午夜福利精品在线播放 | 高清影视 | 91老司机精品福利在线 | 国产日韩一区二区不卡视频 | 九九国产精品国产精选之刘婷野 | 成全免费高清观看 | 美女免费精品 | 国产亚洲sss在线播放 | 区二区三区新线路 | 国产一区二区三区视频 | 国产精品尤物 | 亚洲午夜私人影院 | 国产鲁鲁视频在线观看免费 | 国产专区免费资源网站 | 国产亚洲这里只有精品 | 国产国产人免费视频成69大陆 | 国产女人91精品嗷嗷嗷嗷 | 国产手机在线观看视频 | 国际b站免费视频入 | 国产未成女年一区二区 | 欧美日韩亚洲中文综合视频 | 精品多人p群 | 国产精精品在线免费看 | 成人福利免费观看体验区 | 日韩午夜免费观看 | 按摩视频一区二区三区 | 一区二区三区视频在线观看 | 国产小视频在线观看免费 | 国产精品亚洲专区一区 | 欧美亚洲亚洲日韩在线影院 | 免费99精品国产自在现线 | 日韩欧美另类亚洲 | 国产精品最新资源在线 | 国产精品视频一区视频二区 | 国产午夜福利1000我不卡 | 欧美自拍区日韩国产区 | 日本一二线不卡在线观看 | 欧洲成人全免费视频网站 | 午夜影视免费体验区一分钟 | 亚洲综合另类第一页 | 午夜最污视 | 亚洲欧美在线不卡 | 日本a级| 亚洲色成人www永久网站 | 菠萝蜜视频在线观看免费 | 99国产精品国产高清一区二区 | 欧美未发育h日韩在线观看 欧美精品黑人粗大视频 | 欧美日操| 国产高清又黄又爽又刺激视频 | 18成禁| 免费精品日本 | 国产一区二区日韩欧美在线 | 欧美精品视频手机在线视频 |