老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

與SQL Compare或SQL Change Automation一起部署數據和架構

翻譯|使用教程|編輯:莫成敏|2019-12-05 15:25:09.817|閱讀 323 次

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

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

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

點擊下載SQL Compare免費版


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

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

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

那么,有什么問題呢?

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

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

  • 構建元數據并隨后使用BCP導入數據。

  • 作為構建的一部分,將數據從受影響的表中的舊模式“遷移”到新表

  • 處理部署前和部署后腳本的問題,使DML活動與用于構建數據庫的DDL保持牢固的距離。

通常,我們僅從源代碼進行一次構建,然后在開發和測試中將其與各種數據庫副本同步。通常,現代的關系數據庫知道在發出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 ] THEN  ] [...n])

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

   DECLARE @TheStatement NVARCHAR(MAX)
   EXECUTE #SaveMergeStatementFromTable 
     @tablespec='Adventureworks2016.[HumanResources].[Department]',
     @Statement=@TheStatement OUTPUT;
     PRINT @TheStatement

它使用VALUES語句從@tablespec中指定的表中創建MERGE腳本,并使用VALUES語句創建數據源。它返回此腳本作為輸出變量。然后您可以執行它。這將確保在關鍵字段中具有正確值的行數正確。這是一個完整而美妙的解決方案嗎?不完全是。它適用于小型表,但是多行VALUES子句的伸縮性不好。最好將其分解為較小的語句。對于較大的表,您最終會達到需要對表進行截斷,然后使用本機BCP將數據導入其中的大小。如果希望執行MERGE,則將數據BCP到臨時表中,對其進行索引,然后將其用作MERGE的源,而不是使用表值構造器。

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

創建MERGE語句的數據集

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

出于懷舊之情,我們將在古老的NorthWind數據庫上進行嘗試,因為它甚至不會給簡陋的文件系統帶來負擔。該腳本將執行#SaveMergeStatementFromTable 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或SQL Change Automation一起部署數據和架構

如果要使用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批量分隔符。

這將產生一個文件...

與SQL Compare或SQL Change Automation一起部署數據和架構

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

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

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

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

與SQL Compare或SQL Change Automation一起部署數據和架構

現在,我將合并腳本(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 Compare正版授權,或了解更多產品信息請點擊

04-850x68.png


標簽:

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

文章轉載自:

為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
欧美阿v天堂视频在99线 | 给我一个可以免费看片的WWW | 2020亚洲 欧美 国产 日韩 | 天天噜噜色 | 日韩伦理电影秋霞影院 | 看全黄大色黄大片老人做 | 亚洲狠狠婷婷综合久久久久网站 | 一级做a爰片性色毛片思念网 | 国产精品人人做人人爽人人添 | 嫩B人妻精品一区二区三区 嫩草AV久久伊人妇女 | 国产亚洲玖玖玖在线观看 | 青青青青青国产免费手机看视频 | 免费的黄网 | 日韩精品综合 | 黄色软件草莓丝瓜秋葵安卓下载破解版大全 | 性色va| 91女神精品系列在线观看66 | 日本高清v| 牛牛社区 | 一级高清毛片免费a级高清毛片 | 丁香花视频资源在线观看 | 欧洲男女下面进出的视频 | 91制片厂果冻传媒天美传媒 | 日本一二区视频 | 欧美 日韩 国产 另类 图片区 | 精品人妻无码一区二区三区手机板 | 好涨好爽好大视频免费 | 西西人体做爰大胆视频韩国 | 久久久久久综合一区中文字幕 | 麻豆乱码1区2区新区 | 亚洲精品美女久久久久99 | 人人看人人澡 | 免费黄色一级片 | 国产综合区 | www日本在线观看 | 欧美阿v高清资源不卡在线播放 | 亚洲国模私拍人体gogo | 久久99久久99小草精品免视看 | 最近免费观看高清韩国日本电影 | 国产午夜视频在线观看 | 日本五月天婷久久网站 | 3d人肉蒲团之极乐 | 国产午夜福利视频一区二区32页 | 三级成人AV电影在线观看 | 青草资源站 | 久久精品99国产精品日本 | 精品欧美一区二区三区四区 | 天天色综网 | 嗯 好深 啊 用力 哦 嗯 啊视频 | WWW国产亚洲精品久久小说 | 国产日韩欧美一区二区三区在线 | 亚洲AV国产福利精品在现观看 | 韩国日本免费不卡在线丷 | 日本无卡码高清免费视频v 日本无码MV免费视频在线 | 小辣椒导航精品福利视频 | 强壮公弄得我次次高潮A片强视频 | 亚洲欧美精品 | 扒开双腿被两个男人玩弄视频 | 张馨予疯狂床照视频 | 自拍欧美日韩亚洲动漫 | 影音先锋最新av资源库 | 天天爱天天做天天爽天天躁 | 午夜AV精品一区二区三区 | 国产成人网 | 香蕉成人啪国产精品视频综合网 | 国产一级做a爱片久久毛片a | 色欲AV久久一区二区 | 偷拍亚洲制服另类无码专区 | 国产卡一 | 四房qvod| 国产一级αv片免费观看 | 免费费很色视频大片 | 免费观看电影 | 免费高清欧美视频在线 | 国产69囗曝吞精在线视频 | 国产强伦姧人妻完整版 | 波多野结衣在线家庭教师 | 日韩污视频 | 玖玖玖精品视频免费播放 | 国产又黄又爽胸又大免费视频 | 漂亮人妻被公日日躁国产 | 水中色av综合 | 99蜜桃在线观看免费视频网站 | 国产精品天干在线观看 | 免费的视频 | 久久国产主播福利在线 | 欧美日韩一级黄色片 | 男女啪啪18禁无遮挡激烈直播 | 中国亚洲女人69内射少妇 | 国产美女主播一级成人毛片 | 亚洲天天一色综合AV | 韩日在线| 九九热视频免费观看 | 国内精品美女视频免费直播 | 久久免费精彩视频 | 花房姑娘HD免费高清版视频 | 国产高清啪啪 | 成都影院免费高清完整版 | 亚洲精品一区二区国产精华液 | 麻豆影片 | 又粗又硬女人免费视频 | 亚洲 激情 小说 另类 欧美 | 狠狠躁夜夜躁人人爽A片 | 成人免费看黄网站yyy456 | 四虎影视永久地址www成人污 | 我要看WWW免费看插插视频 | 狠狠干天天干 | 成人18免费网站在线观看 | 成人在线免费看 | 97无码欧美熟妇人妻蜜 | 中文字幕在线视频网 | 91久久九九精品国产综合 | 在线视频 日韩 | 免费在线观看的毛片 | 日韩欧美中文字幕送别 | 成年必看视频在线观看 | 国产精品人妻在线观看 | 欧美亚洲日本国产 | 免费看黄的网站在线看 | 粉嫩AV久久一区二区三区 | 91.xxx.高清在线 | 久久精品视频网站 | 色欲一区二区三区精品A片 色欲综合视频天天天 | 一级做a爱过程免费视频超级 | 无限看片的动漫视频在线观看 | 一级黄色网 | 五月婷婷开心深深爱 | 狠狠撸电影院 | 免费看黄色一级毛片 | 91一区二区午夜免费福利网站 | 欧美宗合网 | 在线视频久 | 麻豆传播媒体2023最新网站 | 色中色最新网站 | 日美三级 | 日韩精品视频一区二区三区 | 日本v视频 | 中文字幕无码一区二区免费 | 奇米影色777四色在线首页 | 成熟少妇AV片在线观看 | 一级毛片免费在线 | 欧美一级在线免费观看 | 国产日韩精品视频 | 欧美成人国产一区二区 | 成人午夜小视频 | 精品免费国产一区二区三区四区五 | 苍井空大尺寸视频大全在线观看 | 校花裸体扒开两腿让我桶 | 丁香花在线影院观看在线播放 | 美女张开腿给男人桶爽久久 | 中日文字字幕乱码视频 | 熟女乱牛牛视频在线观看 | 狠狠狠色丁香婷婷综合激情 | 一级片中文字幕 | 男女高潮又爽又黄又无遮挡 | 无码做爰在线观看 | 国产aaaaa一级毛片无下载 | 久久免费看少妇高潮A片特黄多 | 五月婷婷色丁香 | 精品午夜中文字幕熟女人妻在线 | 日本高清中文字幕 | 最新午夜国内自拍视频 | 婷婷视频网| A片好大好紧好爽视频免费 A片女女女女女女BBBB | 天天干天天天天 | 国产单亲乱子伦视频 | 欧美国产日本精品一区二区三区 | 国产日韩视频一区 | 在线精品播放 | h片在线免费观看 | 糙汉顶弄抽插HHHH | 国产午夜爽爽窝窝在线观看 | 91精品国产91久久综合 | 色综合亚洲一区二区小说 | 把女人弄特爽黄a大片 | a级毛片黄| 在线小视频 | 天天操夜夜做 | 欧美一区二区三区在线视频 | 富二代精品短视频在线 | 久久九九日本韩国精品 | 黑料不打烊668SU痞幼视频 | 国产欧美日 | 波多在线| 97国产v欧美 | 国产精品久久久久久久久久久久久久 | 欧美午夜乱理片无码视频 | 国产亚洲精品久久久久苍井松 | 国产精品porn| 欲色AV无码一区二区人妻 | 日本韩国三级 | 伊人网综合在线观看 | 亚洲高清有码中文字 | 手机在线看黄 | 免费无套内谢少妇毛片A片软 | 嘟嘟嘟WWW日本视频在线 | 97超人人澡不卡 | 天堂资源在线最新版 | 青草园网站在线观看 | 码A片国产精品18久久久... | 免费av网站| 欧美亚洲午夜 | 日本一本无码中文字幕 | 凹凸精品熟女在线观看 | 国产日韩欧美另类重口在线观看 | 91极品哺乳期女神挤奶在线 | 在线网站:yw193.com | 天天做天天爱天天综合网2021 | 杨紫好深啊再用力一点 | 久久99精品久久久久久国产越南 | 日韩视频福利 | 素人约啪第五季 | 手机在线国产精品 | 18丝瓜视频 | 中文 有码 亚洲 自拍 偷拍 | 18禁裸乳无遮挡免费网站 | 亚洲国产专区校园欧美 | 亚洲中文字幕永久在线全国 | 性色欲情网站IWWW九文堂 | 成人做爰视频WWW在线观看 | 玫瑰之战电视剧免费 | 快播色网址大全 | 五月色网站 | 免费永久在线观看黄网站 | japanxxxxhd奶水 | 午夜亚洲视频 | 九九九九在线视频播放 | 国产在线播放KKK | 一夲道DVD高清无码 一边摸一边叫床一边爽 | 久久婷婷丁香 | 国产成人福利在线视频下载 | 国产1988精品A片 | 最近韩国日本免费观看百度 | 日日射天天射 | 无码色AV一二区在线播放 | 东日韩二三区 | 国产区1| 女18一级大黄毛片免费女人 | 久久精品免费i 国产 | 91精品福利久久久 | 伊人网综合在线视频 | 国产 porn| 中文字幕福利视频在线一区 | 亚洲丁香婷婷 | 91免费福利精品国产 | 中文字幕一区二区三区精华液 | 成人网18免费软件大全 | 色导航站 | 欧美精品色婷婷五月综合 | jizz 日本 | 久青草免费视频 | 人妻少妇69式99偷拍 | 99久久精品费精品国产 | 日本少妇BBW丰满做爰 | 性一乱一交A片 | 天天操中文字幕 | 四虎91视频 | 欧美特级限制片高清 | 鲁丝一区二区三区不属 | jizz日| 97色吧 | 黄色免费网站在线看 | 师尊被掐着腰做到潮喷纯肉GB | 亚洲人成在线播放无码 | 亚洲在线成色综合网站 | 日本波多野结衣在线 | 青草热久精品视频在线观看 | 丰满人妻无码AV一区二区免费 | 亚洲 日本 欧美 中文幕 | 亚洲国产中文在线视频 | 欧美性色xo影院在线观看 | 欧美精品手机在线 | 久久99精品久久久久久园产越南 | 日本日本熟妇中文在线视频 | 欧美特级限制片高清 | 九九久久国产 | WW网站男生福利 | 国产自偷 | 国产精品A一区二区三区腾讯导航 | 2020国自产拍精品天天更新 | 中国一级毛片特级毛片 | 欧美精品狠狠色丁香婷婷 | 97在线观免费视频观看 | 中文字幕三级在线不卡 | a级毛片黄| 成av人电影在线观看 | 一区国产传媒国产精品 | 日韩一卡二卡3卡四卡2021高清妈妈的朋友 | 国产一三区A片在线播放 | 好想被狂躁A片免费无码 | 欧美本道| 男人一边吃奶一边做爰免费视频 | 欧美视频在线观看免费观 | 国产午夜福利100集发布 | 国产一国产一级毛片视频 | 国产精品久久人妻无码电影张丽 | 亚洲乱码国产乱码精华 | 97碰在线| 国产成人久久婷婷精品流白浆 | 黄页视频在线观看 | 亚洲一区二区三区色情爆乳 | 在线观看 有码 制服 中文 | 热re99久久精品国99热 | 四房播播 快播 | 国偷自产一区二视频观看 | 欧洲亚洲精品A片久久99动漫 | 啊灬啊别停灬用力啊动态图 | 肉蒲团dvd | 97精品国产高清自在线看超 | 香港韩国日本三级 | 亚洲 在线 日韩 欧美 | 好湿好紧快点再深一点动图 | 免费人成在线观看网站品爱网 | 国产中文字幕视频在线观看 | 国产精品综合一区二区 | 亚洲成A人无码亚洲成WWW牛牛 | 成年人网站在线免费观看 | 中文一级毛片 | 国产单亲乱子伦视频 | 黄色的网站在线观看 | 久久久无码精品无码国产人妻丝瓜 | 日韩欧美综合在线二区三区 | 国产精品人人爽人人做我的可爱 | 日韩视频第二页 | 日本丰满大乳人妻无码水卜樱 | 国产精品久久久久9999高清 | 无套和妇女做内谢 | 阿v天堂2024在无码免费 | 国产成人啪午夜精品网站男同 | 久久天天丁香婷婷中文字幕 | 欧美高清视频看片在线观看 | 亚洲一级香蕉视频 | 丁香婷婷亚洲六月综合色 | 国产网站黄色 | 欧美日韩亚洲综合2019 | 三级黄色一级视频 | 快点好深好爽受不了了 | 亚洲最大的成人网 | 午夜性色吃奶添下面69影院 | 久久成人国产精品免费软件 | 高清偷自拍第1页 | 国产精品久久久久久亚洲影视 | 国产精品中文字幕在线 | 久久久无码精品一区二区三区 | 九二淫黄大片看片 | 国产中的精品AV一区二区 | 日韩免费高清一级毛片久久 | 日本少妇裸体做爰高潮片 | 熟女人妻一区二区三区视频 | 色天天综合网色鬼综合 | 99福利在线| 性生爱120分钟 | 久久精品免费看 | 精品乱码一区内射人妻无码 | 永久域名在线观看视频 | 五月婷婷综合在线 | 野香蕉99香蕉 | 成年网站在线播放 | 在线日本视频 | 国精产品一区二区三区有限公司 | 色综合视频一区二区观看 | 欧美乱妇乱码大黄AA片 | 热热色原网站 | 亚洲色无色A片一区二区农夫山泉 | 毛片中文字幕 | 久久国产这里只精品免费 | 国产无遮挡又黄又爽又色 | 黄页网站在线观看 | 亚洲阿v天堂在线z2024 | 秋霞影院午夜伦A片欧美 | 国产二级一片内射视频播放 | 四虎无码永久在线影库网址一个人 | 最近中文字幕视频国语中文字幕 | 国产乱国产乱老熟300部视频 | 偷偷狠狠的日日高清完整视频 | 一百款流氓软件免费下载安装 | 俺去也影音先锋播放 | 亚洲精品久久无码午夜小说 | 国产亚洲欧美日本一二三本道 | 999国产精华是正规产品吗 | 凹凸在线无码免费视频 | 最近中文国语字幕在线播放 | 成人精品视频在线观看 | 国产一区二区三区乱码在线观看 | 午夜寂寞剧场 | 波多野结衣中文字幕一区二区三区 | 欧美激情一区二区三区中文字幕 | 国产亚洲女人久久久久久 | 免费播放黄色 | 香蕉爱视频| 天天操夜夜艹 | 六月丁香在线视频 | 国产午夜福利视频一区二区32页 | 色哟哟精品网站在线观看 | 国产一区二区精品久久91 | 人妻换人妻AA视频 | 色婷婷.com | 欧美亚洲国产一区二区 | 亚洲日本三级 | 国产精品精品国产 | 日本特爽特黄特刺激大片 | 久久精品国产99国产精品小说 | 久久乐国产综合亚洲精品 | 国内精品乱码卡一卡2卡三卡 | 黄色影视| 国产伦理一区 | 国产成人在线精品 | 亚洲一区欧洲一区 | 中文亚洲字幕 | 人人爱人人看 | 婷婷综合激情 | 97在线观看视频 | 最近中文字幕国语免费完整 | 午夜久久久久久禁播电影 | 日本公妇里乱片A片免费 | 国产亚洲精品久久久久久小说 | www.日本三级| 天天影视色欲 影视 | 亚洲精品无码成人A片在线小说 | 韩国高清不卡一区二区 | 一本在线不卡免费观看 | 被教官按在寝室狂到腿软视频 | 天美视频在线观看 | 亚洲午夜在线观看 | 久久久影院亚洲精品 | 国产精品高潮呻吟久久影视A片 | 国产一级视频 | 一个人日本免费高清 | 手机av在线播放 | 99久久综合九九亚洲 | 2021年无线乱码高清播放 | 五月丁香啪啪激情综合5109 | 蜜桃视频一区二区 | 免费一级a毛片在线 | 真实国产乱子露脸 | 久久精品亚洲综合一品 | 天天干夜夜操美女 | 国内午夜免费鲁丝片 | 性色网站 | 日本wwxx| 亚洲中文字幕AV色情网址 | 99视频国产精品免费观看app | 黑人日亚洲女人 | 国产精品视频自拍 | 欧美性猛交一区二区三区 | 少妇人妻千子深太紧了A片 少妇爽滑高潮几次 | 亚洲AV久久无码精品夜夜挺 | 久久99麻豆婷婷AV1区2区 | 特黄A又粗又大又黄又爽A片软件 | xxxww中国| 97蜜桃小说及图片 | 秋霞黄色 | 亚洲日韩区在线电影 | 久久a在线视频观看 | 狠狠色丁香婷婷久久综合五月 | 海角国精产品一区一区三区糖心 | 香蕉视频在线免费播放 | 99精品无码A片一区二区城 | 我把我的肥岳日出水来多少集 | 嘛逗传媒在线观看免费网站 | 97无码欧美熟妇人妻蜜 | 国产精品成人无码A片免费软件 | 国产精品久久久久毛片 | 在线成人综合色一区 | 亚洲va中文字幕欧美不卡 | 精品伦理 | 99精品丰满人妻无码A片 | 国产精品专区免费观看 | 免费a网址| 做爰全过程免费的视频在线观看 | 成熟少妇AV片在线观看 | 免费国产黄色片 | 办公室漂亮人妇在线观看 | 免费在线视频一区 | 闺蜜放荡H肉辣文御书屋姜 贵州美女一级纯黄大片 | 亚洲色精品一区二区三A片 亚洲三级无码经典三级 | 中文字幕伊人 | 亚洲高清二区 | 中文乱码在线中文字幕中文乱码 | 青草久草视频 | 免费无码一区二区三区A片不卡 | 欧美内射深插日本少妇 | 黄视频网站免费观看 | 熟女肥臀白浆大屁股一区二区 | 国产三级在线观看视频 | 亚洲色无码A片一区二区潘甜甜 | 男女夜晚在爽视频免费观看 | 福利视频导航网址 | 久久精品一卡二卡三卡四卡视频版 | 国产精品不卡在线观看 | 国产午夜精品AV一区二区麻豆 | 久久久国产精品免费 | 亚洲欧洲一区二区三区在线 | 久久久精品色情天美 | 亚1州区2区3区产品乱码 | 日韩制服丝袜在线 | 国产强伦姧人妻毛片 | 久久五月丁香激情综合 | 青青操在线观看视频 | 亚洲精品国产AV成人毛片 | 欧美精品一区二区三区四区 | 最近电影大全免费 | 成人久久欧美日韩一区二区三区 | 美女裸体黄网站18禁免费看影站 | 国产视频99 | 国产成人精品男人免费 | 欧美亚洲精品真实在线 | 极品美女一区二区三区视频 | 人妻在卧室被老板疯狂进入国产 | 免费涩涩屋草莓榴莲秋葵绿巨人 | 日韩乱码在线观看 | 秋霞影院精品久久久久 | 奇米777在线 | 婷婷综合久久中文字幕 | 色资源二区在线视频 | 欧美另类老妇 | 好男人资源影院 | 免费的一级片网站 | 日产中文乱码字幕无线观看 | 亚洲日本欧美日韩高观看 | 色天使久久综合网天天 | 国产电影一曲二曲三曲 | 亚洲精品大片 | 亚洲精品久久久久中文第一幕 | 欧美亚洲日韩国产在线在线 | 无码中文字幕热热久久 | 青青草国产线观看 | 国产激情视频 | 精品中文字幕在线观看 | WWW国产精品人妻一二三区 | 九月婷婷人人澡人人添人人爽 | 精品夜夜澡人妻无码AV蜜桃 | 99久久精品免费看国产免费软件 | 狠狠色丁香久久婷婷综合丁香 | 特级毛片aaaa免费观看 | 无毒黄色网址 | 色综合视频一区二区 | 国产一卡三卡四卡无卡精品 | 日韩伦理电影在线免费观看 | 天使影院| 一区二区三区免费观看 | 一本在线不卡免费观看 | 99视频都是精品热在线播放 | 亚洲国产成人久久综合区 | av在线观看地址 | 2020年最新国产精品正在播放 | 亚洲电影在线观看高清影院 | 黄色在线资源 | 精品少妇一区二区三区A片 精品日本亚洲一区二区三区 | 国产强伦姧人妻完整版 | 女人把腿张开叫男人桶免费视频 | 午夜成人A片精品视频免费观看 | 少妇高清性色生活片成人A片 | 一区二区乱子伦在线播放 | 18禁裸乳无遮挡免费网站 | 成年男人午夜片免费观看 | 国偷盗摄自产福利一区在线 | 免费无套内谢少妇毛片A片软 | 好男人WWW神马社区在线观看 | 小荡货好紧好爽奶头好大视频网站 | 成人在线视频网站 | 免费永久观看美女视频网站网址 | 国产网址在线观看 | 免费观看的成年网站推荐 | 亚洲欧美日韩在线观看一区二区三区 | 国产精品无码人妻在线 | chinese乱子伦xxxx国语对白 | 亚洲国产精品自在在线观看 | 91成人午夜精品福利院在线观看 | 久久久九色综合亚洲成色777 | 久久亚洲精品无码A片大香大香 | 91情侣视频| 婷婷开心激情综合五月天 | 日本高清二三四本2021第九页 | 亚洲成人国产精品 | 亚洲大尺度吃奶做爰电影 | 国产a级精品特黄毛片 | 欧美18.19| 日日噜噜夜夜狠狠视频buoke | 色琪琪丁香婷婷综合久久 | 亚洲伊人色综合网站 | 羞羞影院午夜男女爽爽影院网站 | 中文字幕人成乱在线视频 | 天天做天天爱天天操 | 黄色网页在线免费观看 | 国产成人mv 在线播放 | 凹凸18禁在线视频 | 国产一卡2卡3卡4卡精品 | 欧美在线天堂 | 一个人看的视频WWW高清免费 | 日韩欧美成人免费中文字幕 | 囯产丰满肉体A片 | 五月天婷婷免费观看视频在线 | 久久视频精品38在线播放 | 日日夜夜伊人 | 国产丰满老熟妇乱XXX | 亚洲精品久久久午夜麻豆 | 亚洲性久久久影院 | 校园H所有人随时随地做 | 欧美精品在线观看视频 | 91黄色大片 | 中文字幕不卡在线 | 交换邻居波多野结衣中文字幕 | jizz日本在线播放 | 在线视频91 | 国产福利影院在线观看 | 久久久WWW免费人成精品 | 每章都有肉并且非常黄的小说 | 污污的小说网站免费阅读 | 99国产精品综合AV无码 | 色xxxx | 久久久久女人精品毛片九一 | 一级黄色片网 | 天堂精品在线 | 国内精品乱码卡一卡2卡三卡新区 | 夜夜春影院 | 久久99国产麻豆一区二区三区 | 国产精品久久久久久久毛片 | 成人影院永久免费观看网址 | 狠狠色伊人亚洲综合第8页 狠狠色网 | 天天干天天玩 | 黄色三级免费看 | 成人免费久久精品国产片久久影院 | 精品国产高清毛片A片看 | 欧美一级在线播放 | 国产极品JK白丝玉足喷白浆 | 欧美乱妇15p图 | 高清一区二区不卡视频 | 中字幕久久久人妻熟女 | 涩涩爱涩涩片影院 | 久久久久国产精品 | 久久精品一品道久久精品9 久久精品一本到99热免费 | 色中色入口2015 | 日韩精品人妻AV一区二区三区 | 韩国视频一区 | 久久久久久久综合日本亚洲 | 久久免费精彩视频 | 99热国品| 久久视频在线视频观看 99 | 国产国产人精品视频69 | 国产aav | 黄色片在线网站 | 熟女人妻-蜜臀AV-首页 | 成年啪啪网站免费播放看 | 亚洲免费网站观看视频 | 国产精品一区二区四区 | 2021国产精品一卡2卡三卡4卡 | 亚洲欧洲日韩极速播放 | 日韩欧美一区二区三区免费观看 | 国产精品乱码久久久久久软件 | 999精品国产人妻无码系列 | 毛片在线看片 | 久久精品亚洲一区二区三区浴池 | 又色又爽又黄的视频网站免费 | 全部孕妇孕交BBBBBB | 狠狠操夜夜操 | 九九九九九 | 护士97资源站共享总站 | 青青青国产在线观看手机免费 | 任我鲁精品视频精品 | 亚洲精品一区中文字幕乱码 | 亚洲美女久久 | 欧美亚洲另类丝袜自拍动漫 | 亚洲入口 | 91在线视频免费 | 我与公的情乱妻孝 | 久久国产欧美国日产综合抖音 | 天天av天天翘天天综合网 | 免费成人在线电影 | 无码日本亚洲一区久久精品 | 狠狠色婷婷丁香综合久久韩国 | 91传媒蜜桃香蕉在线观看 | 麻花传剧mv在线看高清 | 国产精品高潮呻吟久久影视A片 | 久久国产成人福利播放 | 97狠狠擼97狠狠擼视频 | 精品无人乱码一区二区三区的优势 | 国产美女影院 | 99精品国产成人一区二区 | 一区二区三区精品牛牛 | 亚洲免费网站观看视频 | 色婷婷精品免费视频 | www日本高清 | 人人干人人澡 | 草草影院永久发布地址 | 深夜激情网| 欧美在线高清 | 光棍影片在线观看免费 | 男女啪啪18禁无遮挡激烈直播 | 借贷宝裸照 | 中文字幕人妻熟女人妻洋洋 | 波多野结衣强奷系列在线观看 | 热热涩热热狠狠色香蕉综合 | 午夜性做爰电影 | 中文字幕在线最新在线不卡 | 麻豆映画传媒新剧免费观看 | 欧美成综合网网站 | 99精品在线视频观看 | 窝窝午夜色视频国产精品东北 | 黄网站免费永久在线观看下载 | 国产视频a区 | 一级毛片特级毛片黄毛片 | 神马影院午夜伦理限级 | 黄色动态网站 | 人人澡人人澡人人澡 | 日本乱妇18日本乱妇18p | 久久精品国产欧美日韩99热 | 欧美人妖乱hd | 久久不卡免费视频 | 影音先锋av网站大全 | 播播色播播 | 免费看成人A片无码网站 | 波多野结衣99 | 影音先锋2024av资源网 | 波多野结衣中文字幕在线播放 | 国产自产对白一区 | 99久久精品免费看国产一区二区 | 人妻无码AV系列久久电影 | 国产crm系统91 | 亚洲va在线va天堂va手机 | 亚洲一线二线三线品牌精华液久久久 | 老狼影院成年女人大片 | 免费看黄色一级片 | 亚洲色婷婷久久精品AV蜜桃小说 | 92国产精品午夜免费福利视频 | 亚洲午夜久久影院 | 噜噜噜噜噜 | 一个人在线观看的免费视频 | 最近最新2018中文字幕8 | 老外毛片| 91久久精品国产免费一区 | 人妻熟女视频一区二二区 | 精品久久亚洲一级α | 性插图动态图无遮挡 | 婷婷丁香在线观看 | 精品国产乱码久久久久夜深人妻 | 免费精品国偷自产在线在线 | 日本精品巨爆乳无码大乳巨 | 色欲AV久久人妻蜜臀绯色 | 91天堂视频 | 一本到国内在线视观看 | 国产毛片视频网站 | 青青青在线视频国产 | 老头老太bbbbbxxxxx | 久久理伦片琪琪电影院 | 欧美一级在线免费观看 | 美国毛片视频 | 色婷婷国产熟妇人妻露脸AV | 激情内射亚洲一区二区三区爱妻 | 亚洲午夜AV久久久精品影院色戒 | 91爱视频| 亚洲色欲成人无码网站在线观看 | 成年人午夜电影 | 蜜桃视频无码区在线观看 | 美女视频黄a视频全免费网站色窝 | 99精品与95优品 | 欧美日韩精品无码免费看A片 | 亚洲国产在线精品国自产拍五月 | 五月天婷婷网址 | 人人射人人爱 | 国产激情在线 | 国产乱码卡二卡三卡老狼在线观看 | 99国产精品久久久久久久久久久 | blacked欧美黑粗硬大free beeg -日本 beeg.黑人 | 成人影视| 青草视频在线观看完整版 | 伊人青青久久 | 成人精品网 | 日韩中文有码高清 | 日本熟妇乱人免费视频 | 成人国产色情无码永久免费软件 | 亚洲一区二区三区四区五区六 | 精品AV无码片| 四房播播首页 | 无人视频免费观看免费直播 | 干b视频在线观看 | 国产麻豆9l精品三级站 | 四虎影视1304t | 天天久久综合网站 | 2022最新a精品视频在线观看 | 人人做人人爽人人爱秋霞影视 | 久久婷婷国产麻豆91天堂 | 动漫成年美女黄漫视频 | av先锋影音资源男人站 | 在线看片v免费观看视频777 | 亚洲图片日本视频免费 | 亚洲精品欧美精品中文字幕 | 四虎影视 1 | 成人福利免费在线观看 | 色欲狠狠躁天天躁无码中文字幕 | 婷婷五月久久丁香国产综合 | 啊轻点灬大巴太粗太长了动态图 | 九九视频在线看精品 | 人妻丰满熟妇V无码区A片免费看 | 精品人妻无码一区二区三区蜜桃臀 | 无码国产69精品久久久久 | 国产欧美日本亚洲精品五区 | 婷婷色婷婷 | 熟女人妻上司中文字幕 |