欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

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

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

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

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

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

點擊下載SQL Compare試用版

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

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

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

有什么問題呢?

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

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

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

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

合并

想象一下,我們想要一些代碼來確保一個表僅包含我們想要的數(shù)據(jù),沒有更多,更少。我們使用MERGE語句,以便僅執(zhí)行必要的插入或刪除操作。讓我們舉一個簡單的例子,來自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;
該語句將確保基于主鍵的值在每一行都有條目。對于開發(fā)工作,我們不太在乎非關鍵列是否不同。如果還需要確保其他列中的值相同,則需要在WHEN MATCHED短語中附加一條語句,以便在必要時更新值,例如:

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

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

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

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

創(chuàng)建MERGE語句的數(shù)據(jù)集

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

出于懷舊之情,我們將在古老的NorthWind數(shù)據(jù)庫上進行嘗試,因為它甚至不會給微薄的文件系統(tǒng)帶來負擔。該腳本將執(zhí)行#SaveMergeStatementFromTablePPP(因此,您首先需要創(chuàng)建PPP;請參閱后面的內容),并依次提供每個表的名稱作為源。對于sp_msforeachtable(和sp_msforeachdb)系統(tǒng)過程,SQL Server在表或數(shù)據(jù)庫的名稱中替換?您作為參數(shù)提供的字符串中的占位符(' ')。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將這種數(shù)據(jù)部署合并到架構同步中,我們將只需要一個腳本。我們還需要在開始時禁用約束,并在完成后全部啟用它們。這需要對該方法進行非常小的修改,但是原理保持不變。
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執(zhí)行synch腳本時,如果您不小心,它可能會為在SSMS中執(zhí)行腳本時能正常工作的代碼提出錯誤。這解釋了為什么逐表禁用約束。這也解釋了為什么我避免使用GO批量定界符。

這將產生一個文件...

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

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

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

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

現(xiàn)在,我將合并腳本(TotalFile.sql)放入Post-Deployment目錄中。一旦開發(fā)了此技術,則可以通過指定適當?shù)牟渴鸷竽夸浀恼_路徑,通過SQL Batch文件或PowerShell腳本直接將文件寫入。

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

強大的程序

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

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

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

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

完善系統(tǒng)

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

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

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;
或者,您可以根據(jù)需要指定要使用的主鍵。
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比較并發(fā)現(xiàn)數(shù)據(jù)和架構與源數(shù)據(jù)庫相同是令人驚訝的。如果數(shù)據(jù)庫中的表設計發(fā)生更改,則只需要準備一個新的部署后腳本,但是由于它都是自動進行的,因此我認為這反倒不會帶來太大麻煩。我使用多行VALUES語句是因為它看起來比使用JSON來保存數(shù)據(jù)要少一些,但是我認為使用JSON可以允許使用更大的表。

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

相關產品推薦:

SQL Prompt:SQL語法提示工具

SQL Toolbelt:Red Gate產品套包

SQL Monitor:SQL Server監(jiān)控工具


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


標簽:

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

文章轉載自:

為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产99视频精品免费视频76 | 色爱综合区 | 亚洲欧美曝精品手机观看 | 中文字幕综 | 激情男女 | 精品亚洲欧美日韩 | 国产精品亚洲午夜不卡 | 45分钟无遮掩免费完整版高清 | 国产免费高清视频在线观看不卡 | 国产欧美日韩在线播放 | 成人性午夜视频在线观看 | 51精品国产人成在线 | 日本免费一级婬片a级中文字幕 | 亚洲无线观看国产超清 | 中文字幕日韩高清 | 国产欧美精品久 | 99re6国产精品视频播放 | 中文字幕精品亚洲一区 | 天堂网果冻传媒 | 色舞月亚洲综合一区二区 | 国产伦精品一区二区三区男技 | 成人污污污www网站免费丝瓜 | 日本一二线不卡在线观看 | 亚洲欧洲自拍偷拍 | 中文字幕亚洲一区二区va在线 | 欧美最猛性xxxxx大叫 | 国产99视| 成人福利在线视频免费观看 | 99re视频热这里只有精品 | 中文字幕日韩欧美一区二区三区 | 视频国产精品丝袜第一页 | 精品国产黑色丝袜高跟鞋 | 亚洲欧美高清精 | 国产激情国语对白 | 精品免费看国产一区二区 | 在线观看一级亚洲欧美观看 | 91干逼| 丰满岳乱妇一区二区三区 | 国产喷水大秀在线观看2025 | 男人j放进女人p全黄在线 | 国产视频美女精品福利社 | 热映电影 | 国产精品黄在线观看免费 | 海角国精产品一区一区三区糖心 | 国产精品日韩激情在线观看 | 亚洲高清激情精品一区国产 | 91色在线观看 | 最新电影电视剧免费在线观看 | 奇米777四| 欧美日韩精品一区二蜜桃在线观 | 中文字幕巨大乳在线看 | 韩国三级hd中文字幕不卡偷看 | 性生生活| 国产精品激情欧美可乐视频 | 一本一本 | 国产又黄又爽刺激视频 | 欧美变态口味重另类在线视频 | 国产精品日 | 国产日韩欧美在线观看一区二区 | 手机国产视频福利 | 国产欧美在线人成 | 亚洲欧美福利一区二区 | 日本三级做a全过程在线观看 | 亚鲁鲁国产 | 国产精品亚洲片在线 | 网站资源多午夜激情影院 | 国产曰批视 | 在线观看日韩欧美 | 中文字幕一区日韩精品 | 九九99九| 日韩精品一区二区三区视频网 | 日本视频免费观看 | 国产男女爽爽爽爽爽爽爽爽 | 欧美综合自拍亚洲综合区 | 综合精品| 国产中文字幕免费不卡 | 国产精品成人一区二区不卡 | 91福利国产在线观看香蕉 | 50岁丰满女 | 欧美一区二区成人精品视频 | 91福利国产在线在线播放 | 欧美大片va欧美在线播放 | 女人18毛| 91九色精品国产自产精品 | 在线观看免费无 | 欧美另类video| 亚洲欧美另类在线图片区 | 亚洲精品三级 | 国产午夜成福利在线观看 | 99ri国产在线观看 | 337p日本大胆欧美人术 | 青青青爽国产 | 精品午夜福利在线观看 | 精品国产日韩欧美一区 | 精品一区二区三区免费 | 国产精品视频一区 | 欧美午夜一区二区三区 | 色综合综合色 | 青苹果影院| 欧美精品v欧洲精品 | 日本高清视频www | 国精产品一区一区三区有 | 香蕉久人久人青草青草 | 一本大道综合伊人精品热热 | 在线天堂8| 亚洲精品自有码中文字 | 永久精品免费影院在线观看网 | 欧美性受xxxx黑人猛交免费 | 日韩欧美国产91丝袜 | 国产在线视频自拍 | 水蜜桃视频网站在线观看网址 | 国产成年女人 | 97操人人草人人 | 顶级欧美色妇xxxxx | 亚洲精品综合在线发布 | 污污污国 | 韩国精品福利一区二区 | 秋霞人成在线观看免费视频 | 天堂影视 | 国内精品国语自产拍在线观看91 | 日韩高清在线观看不卡一区二区 | 日本一区二区高清国产 | 国产热re9| 午夜伦伦 | 影音先锋教师波 | 激情欧美经典日韩 | 成人免费观看做爰视频胸大 | 91精品丝袜国产在线一区 | 日本黄页网站免费观看 | 最污网站 | 人人天天夜夜曰曰狠狠狠肉感 | 亚洲精品免费视频 | 欧美亚洲综合成人专区 | 又湿又紧又大又爽a视频国产 | 思热99re视热| 亚洲欧美网站 | 野花免费观看日本一个电影 | 香港三日本三级人妇三级99 | 亚洲国产一区二区三区亚瑟 | 看一级特黄a大一片电影 | 请放心下载! | 欧美精品一区二区三区四 | 亚洲日韩成人精品不卡在线 | 国产午夜电影在线电影 | 色综合伊人色综合网站 | 无遮无挡三级动态图 | 亚洲欧美人成在线视频 | 亚洲视频在线观 | 亚洲精品日韩在线观看高清不卡 | 亚洲国产日韩在线观看 | 日韩欧美国产精品亚洲二区 | 最新电视剧免费在线观看 | 欧美日韩在线精品一区二区 | 欧美一区日 | 国产精品天天在线午夜更新 | 国产精品一二三 | 熟女乱2伦 | 日韩一区高清在线观看 | 91久色视| 欧美日韩视频在线观看第一区 | 精品乱码一区二区三四区视频 | 亚洲国产区男人 | 国内精品一区二区三区最新 | 亚洲欧美日韩激情在线观看 | 99精品国产在 | 国产精品广西柳州 | 亚洲一区二区国产精品 | 日本一二三区视频 | h片在线观看免 | 国产私拍福利精品视频推出 | 日韩视频在线观看网站资源 | a在线视频播放观看免费观看 | 国产在线观看无 | 国产一级a毛一级a看免 | 免费中文字幕不卡 | 日本黄页网站 | 国产精品999 | 精品一区二区三卡四卡网站 | yes4444视频在线观看 | 精品欧美一区二区三区在线 | 国产欧美一区二区 | 一区②区三区电影网 | 国产精品大白天新婚身材 | 日韩欧美国产 | 国产尹人在线视 | 国语精品一区 | 91情国产l精品国产亚洲区 | 韩国影院| 91探花国产 | 日本精品99 | 亚州欧美自拍另类欧美 | 亚洲人色大成年网站 | 2025在线精品自 | 国产中文 | 电影免费在线观看 | 国产精品专区第5页 | 成人羞羞视频 | 国产自产 | 日韩精品区 | 91午夜福利 | 欧美交换| 国产网站在线免费 | 国产一区二区三区视频在线观看 | 国产在线精品国自产在线 | 亚洲欧洲自拍偷线高清一区二区 | 国产欧美一区二区精品久 | 国产操穴 | 欧美精品免费一区 | 欧美黑大硬粗xxxxx成人视颎 | 中文有码国产精品 | 欧美一区区三区四区五区在线观看 | 中文字幕在线 | 欧美亚洲日本国产黑白配 一级特黄高清aaa | 99热这里只有精品动漫国产 | 亚洲欧美日韩国产另例 | 色综合欧美在线视频区 | 免费高清电影大全 | 国产激情一区二区三区小说 | 肉丝在线观看 | 婷婷亚洲综合一区二区 | 国产又猛又黄 | 最新欧美精品一区二区三 | 欧美一区二区三区视频在线观看 | 国产在线精品一区免费香蕉 | 国产特黄特色a级在线视 | 日本偷窥 | 亚州一区二区三 | 99re6国产精品视频播放 | 国产伦在线视频大全 | 欧美一区二区在线观看 | 国产精在线 | 亚洲aⅴ永久无 | 中日韩精品一区二区三区 | 国产福利爱福利微拍视频 | 国产在线精品国自产拍影 | 亚洲精品免费 | 欧美色中文字幕第一页 | 精品国产系列 | 国产日韩在线欧美视频 | 免费在线观看国 | 欧美高清在线精品一 | 日本日本乱码伦视频在线观看 | 免费看美女午夜大 | 国产真实乱xxxⅹ视频 | 成年人免费国产视频 | 午夜高清 | 69视频在线观看 | 在线看片免费人成视频手机观看 | 一本久道综合在线 | 亚洲论片在线观看 | 精品国产午夜福利精品推荐 | 三级网站视频 | 喷水gif | 亚洲第一性网 | 国产素人视频在线播放 | 亚洲综合一区自偷自拍 | 国产亚洲欧美日韩高清专区 | 精品国产欧美一区二区三区成人 | 美女福利亚洲视频 | 免费a级伦费影视在线观看 国产91精品露脸国语对白 | 对白精彩| 明星国产欧美日韩在线观看 | 日韩亚洲欧美理论片 | 亚洲一区二区天海 | 91短视频污下载app | 国产午夜场免费视频在线播放 | 亚洲国产激情一区二区三区 | 日本高清不卡在线中文字幕 | 成人国产精品一区二区八戒网 | 国产极品视 | 五月天激情综合网 | 欧美精品v | 国产熟女一区二区三区浪潮 | 欧美一级特黄aa大片 | 视频国产精品丝袜第一页 | 成人精品综合免费视频 | 国产欧美日韩一区二区三区蜜桃 | 国产精品爱的在线线免费观看 | 日韩美女欧美精品 | 日韩在线视频线视频免费 | 国产精品一区二区电影 | 日本免费一区二区三区最新 | 国产精品一区二区日韩91 | 最新电影电视剧在线观看 | 男女xxⅹ爽免费视频 | 欧美日韩亚洲国内一区二区三区 | 国产初次在线观看 | 亚洲一区亚洲二区 | 国产污污污十八在线精品观看 | 亚洲国产区男人本色 | 欧美综合国产日本 | 亚洲一区在线播放 | 97国产婷婷综合 | 国产微信高清小视频在线播放 | 草莓社区在线视频 | 亚洲精品日韩三区 | 被暴雨淋湿 | 亚洲精品一区二区不卡 | 思热99re视热| 日韩欧美一区二区三区在线视频 | 国产免费福利不 | 靠逼视频一区二区三区 | 99国精产品在线视频 | 99热视| 日韩午夜福利免 | 国产尤物a | 国产精品欧美一区二区 | 亚洲日韩欧美国产高清αv 亚洲欧美 | 18处破外女出血在线 | 亚洲国产精品va在线观看无 | 日本三级免费 | 国产热re9 | 欧美日韩国产色综合一二三四 | 国产3级在线观看 | 国产一区二区丝袜美腿在线 | 国产日韩精品一级二级 | 成人免费网站又大又黄又粗 | 亚洲精品沙发午睡系列 | 三级国产短视频在线观看 | 日本欧美一区二区三区片 | 乱码午夜 | 欧美综合自拍亚洲综合区 | 91精品一区国产高清在线 | 亚洲丰满 | 国精产品一区一区三区mba下载 | 国际国内自拍偷拍视频摄影 | 日韩综合网 | 激情深爱五月开心婷婷综合 | 91手机国产在线网站 | 亚洲无砖砖区免费 | 美女足脚交一区二区三区 | 国产乱子伦精品免费视频 | 看片国产| 高清在线?视频大全 | 亚洲国产激| 欧美日韩亚洲第一区 | 91影院 | 99热这 | 国产免费人成视频在线观看播放 | 免费高清观影 | 乱码视频午夜在线观看 | 亚洲五月六月丁香激情综合 | 国产日韩一区二区三区视频免费 | 欧美在线观看二区 | 91高清国产在线观看 | 华人亚洲欧美精品国产 | 中文字幕日韩专区下载 | 亚洲一二三区在线观看 | 亚洲中文娱乐网在线观看 | 香港三级日本三级人妇三99 | 日本精品| 日本不卡一区二区三区在线 | 尤物精品视频一区二区三区 | 国产永久精品一区二区污污 | 色吊丝中文字 | 一区二区欧美日韩高清免费 | 国产一区二区三区在线观看 | 日韩欧美在线观看一区 | 午夜福利影院 | 国产伦精品一区二区三区无广告 | 国产女白丝脚交视频播放 | 日本玖玖资源在线一区 | 国产福利电影网 | 国产精品自在自线 | 国产日产韩| 国产乱国 | 欧美视频在线第一页 | 老司机亚洲精品影院 | 亚洲一级a大片一级 | 欧美精品aⅴ一区二区三区 天堂a在线观看视频 | 抱着cao才爽视频 | 欧美人成在线观看网站高清 | 国产系列在线精品二区 | 中文在线中文资源 | 午夜影视在线播放免 | 欧美高清在线不卡免费观看 | 办公室激情上司和秘书小说 | 午夜看片a福利 | 亚洲韩国日本欧美一区二区三区 | 欧美国产合集在线视频 | 日本精品99 | 日韩欧美一级视频网站 | 欧美性爱中文字幕无 | 日本免费一区二区三区在线视频 | 果冻传媒国产电影免费看 | 亚洲熟女综合一区二区三区 | 欧美综合亚洲日韩精品区 | 成人涩涩涩视频在线观看 | 国产素人视频在线播放 | 精品国产主播在线亚洲 | 欧美人成中文视频在线观看 | 亚洲高清国产品国语在线观看 | 国产精品亚洲一区二区三区 | 国产精品乱码一区二区三区 | 亚洲欧美综合一区二区三区黄大片 | 欧美亚洲自拍日韩在线 | 天天综合天天做 | 国产欧美精品久 | 日本国产中文字幕 | 亚洲成v人片在线观看 | 亚州有码91 | 欧美精产国品一二三类产品特点 | 国产精品三级在线播放 | 亚洲大片精品免费在线 | 91精品人成在线观看 | 三年片观看免费观看大全 | 男女爽爽爽视频免费网站 | 国产精品探花一区在线观看 | 九九热线精品视频在线观看 | 国产午夜a级理论片在线播放 | 日韩精品电影一区 | 欧美精品视频一区二区三区 | 女厕所撒尿视频免费 | 亚洲成v人片在线观看福利 一二三四视频 | 一区二区三区四区 | 在线观看永久免费视频网站 | 真实国产乱子伦在线观看 | 精品欧美一区二 | 国子监来了个女弟子 | 欧美亚洲色另类偷自拍 | 日本高清不卡一道免费观看 | 欧美又粗又大又长又硬一级a | 国产精品亚洲产品一区二区三区 | 最新高清电影 | 国产精品自在自线国产午夜 | 欧美三级美国一 | 国语自产免费精品视频在 | 国产精品亚洲产品一区二区三区 | 国产亚洲高清不卡在线观看 | 国产欧美日韩在线播放 | 国产亚洲精品拍拍拍拍拍 | 一级a做一级a做片性高清视频 | 精品第一国产综合精品蜜芽 | 国产情侣91在 | 国产午夜电影在线电影 | 七十路熟女交尾hd | 国产99这里只有精品 | 欧美精品一区二区三区中文 | 手机免费在线观看日韩电影 | 国产黃色精品三級一区二区 | 日韩免费影视 | 国产在线精品国自产拍影院午夜 | 欧美日韩中文在线观看 | 天天综合网天天综合 | 欧亚乱色熟一区二区三四区 | 91高清在线 | 2025年最新高清电影 | 日本高清一级婬片a级中文字幕 | 精品国产迪丽热巴在线 | 97视频在线观看视频 | 日韩专区亚洲精品欧美专区 | 欧日韩在线不卡视频 | 国产美女嘘嘘嘘嘘嘘 | 最新全网影视大全电影电视剧 | 国产在线精品观看一区欧美 | 国产综合色在线视频区 | 国产吹潮视频在线观看 | 亚洲精品视频在线播放 | 99热只有这里有99精品 | 91欧洲在线视精品在亚洲 | 国产爱情岛在线观看视频 | 国产精品视频每日更新 | 国产乱理伦片在线观看 | 玖玖国产视频拍拍拍 | 亚洲高清在线看 | 鲁丝一区二 | 手机看片福利一区二区三区 | 亚洲中文字幕高清有码在线 | 加勒比一本大道香 | 日产精品卡二卡三卡四卡乱码视频 | 中文字幕与| 亚洲综合精品成人 | 精品国产yw在线观看 | 自拍偷亚洲成在线观看 | 91午夜视 | 国产自产21区最新资源 | 国产欧美日本亚洲精品一5区 | 国产黃色精品三級一区二区 | 四川妇女bbbwbbbwm村妓 | 成人夜间视频 | 日韩亚洲国产激情在线观看 | 国产在线欧美日韩精品一区 | 国产性夜夜春夜夜爽30 | 午夜私人成年影院在线观看 | 福利午夜一级a | 一区二区三区在线看 | 亚洲国产欧美在线综合 | 国产精品一区二区无线 | 日本国产一区二区三区在线观看 | 国产无内肉丝精品视频 | 国产家教老 | 久爱免费观看在线网站 | 91社区免费福利区 | 一级a性色生活片 | 国产区精品视频 | 亚洲精品aⅴ中文字幕乱码 国产在线ts | 成人欧美视频在线观看 | 色综合免费视频在线观看 | 中文字幕日本精品一区二区三区 | 大地影院mv高清在线观看免费 | 欧美亚洲国产日韩完全在线电影 | 激烈网站| 亚洲色大成网站www永久男同 | 奶水国产在线播放 | 日本一卡2卡3卡无卡免费 | 日本xxxwww在线观看 | 欧美日韩午夜视频在线观看 | 欧美最猛性xxxxx直播 | 欧美三区日韩一 | 国产欧美日韩一区 | 成年奭片免费观看 | 国产精品盗摄视频 | 国产一区日韩一区二区三区 | 亚洲激情一区二区 | 国产+成+人+亚洲欧洲自线 | 在线精品亚洲欧洲第一页 | 亚洲高清视频一区 | 日本不卡一区二区三区在线 | 五月天丁香激情 | 日本.欧美一区二区三区 | 97碰碰碰视频在线观看 | 欧美日韩一区二区精品 | 精品人伦一区二区三区蜜 | 只有精品首页 | 国产在线观看精品一区二区三区 | 国产精品v日韩精品v | 精品第一国产久精国产宅男66 | 护士精品一区二区三区 | 亚洲一区精品在线视频 | 久热亚洲 | 国产绿奴视频在线观看 | 性欧美vr高清极品 | 欧美嫩交一区二区三区 | 男人精品一线视频在线观看 | 在线观看亚洲人成网站 | 亚洲综合色区中文字幕 | 国产精品一区二区在线精品 | 亚洲最大国产成 | 亚洲精品免费日日日夜夜夜夜 | 一区二区日韩国产精品 | 国产精品多人 | 91欧美| 国产欧美日韩va另类在线播放 | 中文字幕在线观看2025 | 日本免费在线观看视频 | 制服丝袜另类专区制服 | 伦理片午夜视频在线观看免费 | 亚洲一线二线三线免费视频 | 国产视频精选 | 国产一区二区三区影院 | 99re视频热这里只有精品 | 草莓视频污免 | 成人短视频黄 | 欧美激情亚洲专区一区二区 | 成年动漫h视频在线观看 | 视频精品全部国 | 亚州va | 99久热海外精品视频 | 女厕脱裤撒尿大全视频 | 永久四色 | 日本一区二区三区在线观看不卡 | 毕业之后混得很normal | 国产拍揄自揄免费观看 | 久青草久青草视频在线观看 | 日韩精品福利 | 欧美伦费免费全部午夜最新 | 亚洲欧美精品一中文字幕 | 日日摸处处碰夜夜爽 | yin荡护士揉捏乱p办公室视 | 国产伦理一区的二区三区四区 | 日本欧美一区二区三区在线播放 | 国产jizzjizz免费看 | 国产精品综合色区在线观看 | 91探花国产综合在线精品 | 影院4k电影在线 | 国产美女一区三区在线观看 | 九九热在线视频观看 | 欧美人与日本人xx在线视频 | 极品美女国产精品 | 中文字幕永久在线第38 | 亚洲最新精品每日一更新 | 中文版精 | 天天色影综 | 欧美精品午夜一二三区 | 欧洲精品色在线观 | 国产女主播勾搭美团在线观看 | 日本一卡2卡三卡4卡网站 | 亚洲成在人线在线播放 | 偷拍自产在线观看蜜桃 | 日本韩国三级aⅴ在线观看 老妇小说 | 亚洲欧美国产另类 | 99在线精品 | 国产91精选在线观看导航 | 福利电影大全 | 亚洲国产高清视 | 亚洲精品欧美精品日韩精品 | 91国在线啪精品一区 | 中文字幕一区二区三区四区 | 午夜福利电影在线观看 | 亚洲国产欧美中文手机在线 | 不卡中文字幕激情视频网站 | 免费60分 | 欧美一区二区精品系列在线观看 | 亚洲激情小说另类欧美 | 伊人五月婷婷 | 三级视频网站在线观看 | 国产偷国产偷亚洲高清日韩 | 国产操穴 | 国产手机在线国内精品软件的特点 | 欧美制服丝袜国产日韩一区 | 国产精品制服丝袜另类 | 一区二区在线视 | 少女的第一的视频 | 国产欧美日韩精品二区在线 | 精品乱子伦一区二区三区 | 午夜老司机永久免费看片 | 国产亚洲成aⅴ人片在线观看 | 午夜男女刺激爽爽影院 | 国产精品成人va在线观看 | 岛国成人免费大片在 | 日韩一中文字 | 国产又大又硬又粗视频 | 欧美亚洲精 | 国产乱码精品一区二区三区百度 | 亚洲欧洲国产韩国va在线 | 九九热这里只有精品视频 | 激情欧美一区二区三区 | 亚洲免费观看在 | 国产精品一区高清在线观看 | 国产精品青青青高清在线 | 日本黄页免费大片在线观看 | 午夜福利电影院 | 91青青草原 | 在线观看2025精品 | 日韩欧美国产精品亚洲二区 | 国产一区二区三区高清视频 | 小明欧美精品视频在线观看 | 精品国产一区二区三区不卡在 | 92国产精品午夜福利免费 | 论理电影 | 国产综合精品一区二区三区 | 大色综合色综合网站 | 精品区一 | 亚洲一日欧美日韩中文字幕 | 国产精品长腿丝袜第一页 | 视频在线中文字幕亚洲 | 亚洲一区二区三区丝袜 | 日韩高清三级在线观看 | 肉色超薄丝袜脚交一区二区 | 99国产在线精品观看二区 | 自拍偷拍 | 涩涩热热国产丝袜一区 | 最新亚洲人成网站在线 | 人成午夜视频在线观看 | 国内精品日本和韩国免费不卡 | 亚洲国产婷婷综合在线精品 | 91午夜福利国产在线观看 | 日韩亚洲国产激情在线观看 | 精品一区二区免费视频 | 最新国产一区二区三区在线 | 国产v欧美v日韩v亚洲老妇 | 话务耳机 | 在线观看国产 | 国产h视频在线观看网 | 亚洲最大的情人在线 | 欧美精品视频一区 | 在线观看欧美影 | 国产精品午夜福利在线观看地址 | 日本高清视频在线观看不卡 | 国产91丝袜在线观看 | 全网热播最新电影电视剧 | 伊人网视频在线观看 | 国产精品三级在 | 国产曰韩| 欧美人与禽zozo性伦交 | aaa亚洲男人的天堂 日本搞黄 | 免费无毒a网站在线观看 | 国产精品自在线 | 99热在线获取最新地址 | 欧美日韩亚洲精品瑜伽裤 | 九七电影院 | 欧美日韩国语aⅴ视频网站 国产高清自偷自 | 亚洲精品第一国产综合境 | 亚洲一区网站 | 午夜男女刺激爽爽影院 | 精品福利 | 欧美a级情欲片在线观看免费 | 不卡一区二区 | 日韩成人午夜影院 | 91香蕉成人免费网站 | 全集追剧网 | 国产亚洲欧美日韩在线观着 | 国产天堂网在线视频 | 中文字幕制服丝袜在线观看 | 欧美视频在线一区 | 国产丝瓜 | 色色www | 91午夜福利 | 亚洲欧美另类专区 | 91超精品 | 国产99视频精品免视看7 | 最新高清电影 | 国产高清在线a视频 | www在线资源 | 亚洲a级午夜线上看不卡 | 亚洲精品第一国产综合精品5 | 一区二区三区四区免费视频 | 亚洲色成人中文字幕网站 | 国产男女免费完整视频网页 | 911精品国产一区二区在线 | 欧美一区二区三区激情爽 | 草莓社区在线视频 | 欧美一区二区在线观看 | 亚洲精品1区2区3区4区 | 国自产拍偷拍福利精品免费 | 亚洲手机 | 一区二区三区免费在线视频 | 国产中文字幕在线点播 | a级国产乱理伦片在线观看 天美传媒官方网站 | 久插视频 | 免费视频网站 | 国产一卡2卡3卡4卡网站免费 | 国产愉拍99线观看 | 三年片在线观看免费大全电影 | 性色福利 | 91蜜桃视频 | 老熟女乱一区二区三区视频 | 免费在线观看小说区激情另类 | 国产在线一区二区三区不卡在线 | 窝窝午夜理论片影院 | 亚洲欧美一区二区三区电影 | 另类专区亚洲97在线视频 | 午夜亚洲理| 亚洲精品在看在线观看高清 | 99热这里只有精品免费播放 | 色综合免费视频在线观看 | 欧美日韩一本到手机视频观看一区 | 日韩h片在线观看 | 亚洲一区乱码精品中 | 亚洲欧美日本韩国在线观看 | 又粗又黄又猛又爽大片免费 | 亚洲精品国产摄像头 | 婷婷亚洲综 | 久青草久青草视频在线观看 | 国产h视频在线观看免费 | 成人精品一区二区户外 | 日本性爱视频免费看 | 午夜成人爽爽爽视频在线观看 | 国产精品亚洲片在线 | 亚州一区二区三 | 视频在线观看jjxyz | 欧美女视频网站大全在线观看 | 一级一黄免费视频在线看 | 国产精品亚洲社区在线观看 | 午夜三级中文不 | 亚洲国产欧美日韩精品 | 欧洲亚洲日产 | 99视频精品在 | 想要大鸡 | 国产精品偷伦视频 | 亚洲欧美中文高清在线 | 中文字幕亚洲精品第1页 | 欧美曰韩免费一级在线 | 亚洲成v人片在线观看www | 亚洲视频 | 国产高清精品一区二区不卡 | 91高清在线 | 国产精品天天看特色大片不卡 | 国产探花在线观看 | 亚洲是第一大洲的原因 | 国产专区一区在线观看 | 国产在线精品一区二区三区不卡 | 欧美午夜成午夜成年片在线观看 | 日韩亚洲欧美 | 日韩一区国产二区欧美三 | 天美传媒、91制片厂、天美传媒 | 精品国产欧美在线小说区 | 在线综合亚洲欧美网站 | 综合亚洲 | 射射影院| 天天综合网日韩欧美影视导航 | 免费电视剧 | 伊人精品在线观看 | 国产精品免费精品自在线观看 | 中文字幕精品视频在线 | 亚洲欧美另类视频小说专区 | 欧美激情一区二区三区成人 | 成人欧美精品资源在线观看 | 国产在线精品一区二区夜色 | 国产日本欧美精品 | 一区二区不卡中文字幕在线 | 视频首页 | 天天综合网天天综合 | 一级a爱片免费观看高清完整 | 果冻传媒mv国产推荐视频 | 亚洲国语中文字幕理论片 | 国产在线视频欧美一区二区三区 | 私人尤物在线精品不卡 | 尤物国产精品福利三区 |