超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

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

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

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

文章轉載自:

為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) a级孕妇高清免费毛片 | 精品人妻一区二区三区日产乱码 | 国产护士在病房av做爰小说 | 国产精品无码久久四虎 | 囯产精品视频一区二区三区99 | 爆乳邻居中文字幕 | 99久久精品午夜一区 | a级毛片在线免费 | 国产成a人亚洲精v品无码 | 国产91成人免费网站 | 国产美女精品在线 | 国产精品视频一区二区亚瑟 | 国产av成人一区二区三区 | 国产午夜毛片v一区二区三区 | 国产在线播放剧情演绎 | 午夜精品视频在线播放 | 国产成a人片在线观看视频99 | 国产作爱视频免费 | 国产成人高清一区二区私人 | 91精品宅男在 | 成人无码视频在 | 国产在线不卡国产高清 | 精品国偷自产在线视 | 国产精品成人小电影在线观看 | 国产91中文字幕 | 国产精品碰碰 | 2025最新污污视频免费 | 国产在线无码精品无码 | 国产成人好资源在线观看 | 国产精品无码一二三区免费 | 国产精品欧美在线观看 | 91麻豆精品一区二区 | 99精品国产高清一区二区三 | 国产成人免费高潮激情视频 | 国产亚洲欧美在线 | 国产偷情精品视频 | 国产成人va视频在线观看 | 国产成人av在线亚洲 | 2025年精品国产福利在线 | 69式无码视频在线观看免费 | 国产精品无码一区二区在线 | 福利影音国产在线观看 | 国产精品一区二区三区免 | 97人妻在线免费视频 | 国产精品秘入口18禁麻豆免会员 | 国产成在线观看免费视频成本人 | 91福利视频网站主页 | 国产人妻精品区一区二区三区 | 国产精品国色综合 | 国产成人精品亚洲日本在线 | 国产探花在线精品一区二区 | 成人国产片视频 | 岛国aⅴ无码免费无禁网站 岛国av无码精品一区二区三区 | 成无码网在线观看 | a级国产乱理片 | 国产精品嫩草免 | 国产成人av综合久久 | 寡妇高潮一级毛片在线播放一 | 97人妻中| 囯产极品美女高潮无套久久久 | 国产日韩亚洲欧美综合另类 | 国产av一区二区三区无码野战 | 国产麻豆精品视频 | 国产成人秘在 | 国产区女主播在线观看 | 国产91精品秘入口福利姬 | av一本久道久久波多野结衣 | av免费不卡国产观看 | 国产成人精品一区二区三在线观看 | 91无码视频在线观看免费播放 | 国产激情一区二区三区app | 国产一区二区三区中文在线 | 国产欧美日韩 | 精品久久免费一区二区三区四区 | 国产美女福利视频一区二区 | 91精品国产福利在线观看麻 | 高清无码在线观看h片 | 国产在线一区二区三区av | 国产美女一级日逼大片 | 国产精品一区福利 | 国产黄频在线观看视频 | 99久久精品免费精品国产电影 | 国产成人午夜福利电影在线观看者 | 国产欧美日韩一区二区三区 | 精品一区二区高清在线观看 | 国产偷伦视频高清完整版 | 国产综合亚洲区在线观看 | 91精品成人无码久久不卡 | 国产精品免费不卡无码av | 国产最爽的aⅴ片在线观看 国产最爽的av片在线观看 | 国产一级无码免费a片 | 国产精品日韩精 | 国产精品精品国内自产拍 | 国产人妖的免 | 国产成人自拍视频 | 国产人妖ts观看一区二区 | 高潮一区二区三区 | 国产精品成人免费精品自在线 | 国产成人午夜福利免费无码r | 99久久国产综合精品麻豆 | 国产成人久久精品亚洲小说 | 国产成人高清精品亚洲 | 国产成人欧美日韩在线电影 | 18禁男女无遮挡网站 | 国产精品进线69影院在线 | 国产成人无码专区 | 91大神福利在线 | 2025国语电影影视大全 | 国产精品无码亚洲精品蜜桃传媒 | 国产精品va在线播放我和闺蜜 | 精品国产免费看久久久 | 国产亚洲欧美日韩在线 | www国产亚洲精品 | 国精视频一区 | 国产成a人亚洲精v品无码 | 国产午夜亚洲精 | 69精品人人人人人人人人人 | 国产精品毛片高 | 91久久久精品国产一区二区蜜臀 | 国产综合精品一区二 | 国产一区二区三区四区二区 | 国产成人无码午夜视频在线播放 | 精品日本亚洲一区二区三区 | 91在线无码精品 | 丰满多毛少妇做爰视频爽爽和 | 99久久精品国产一区二区免费 | av在线电影免 | 国内丰满少妇一a级毛片视频 | 3d动漫精品一区视频 | 2025在线视频国产第一页 | 国产亚洲欧美日韩综合一区二区 | 国产夫妻久久线观看 | 加勒比视频在线播放 | 国产一区视频在线 | 国产中文字幕手机视频 | 国产亚洲欧美日韩在线观看一区二区 | 国产精品无码亚洲精品2025 | 国产a级毛片久久久毛片精片 | 国产综合一区二区三区精品 | av收藏夹国语剧情在线播放 | 国产精品一亚洲av | 国产精品三级国产精品高 | 国产精品日韩精品久久密挑 | 国产不卡在线观看 | 操婷婷色六月中文字幕 | 69蝌蚪| 国产一区二区三区乱码 | 国产成人av黄色大片 | 国产美女亚洲真人做受在线观看 | 国产黄色片在线观看 | 国产成人久久一区二区三区 | 精品人妻一区二区三区浪潮在线 | av无码精品一区二区三区宅 | 国产日韩欧美一区二区久久精品 | 国产精品亚洲免费在线 | 国产尤物一区二区在线播放 | 国产成人免费视频在线网站 | 国产精品日韩在线 | 成人动漫在线观看 | 国产一区二区四五区在线视频 | 国产成人高清 | 18禁裸乳无遮挡啪啪无码免费 | 精品亚洲a∨一区二区三区 精品亚洲a∨在线播放不卡 | 国产a级毛片久久影院 | 国产欧美日韩亚洲 | 2025亚洲综合一 | 国产成人精品久久亚洲高清不亚洲 | 国产精品日韩欧美一 | 国产成人精品电影久久久 | 国产日韩精品一区二区三 | 国产三级无码内射 | 国产免费无码视频不卡的 | 国产人妻精品一区二区三区不卡 | 国产成人aa视频在线观看 | 成人免费观看高清视频a斤 成人免费观看国产高清 | 成人品视频观看在线 | 动漫精品中文字幕制服一区 | 国产成人无码区免费内射一片色 | 精品日本一区二区三区在线观 | 国产日韩在线播放一区 | 91人妻无码精品蜜桃 | 国产精品一区二区亚洲精品 | 精品高清国产日本 | 3d动漫精品啪啪一区二区免费 | 国产av人人夜夜澡人人爽麻豆 | 国产av福利片一二三四区 | 国产成本人三级在线观看网站 | 高潮毛片无遮挡高清免费视频 | 国产精品美女啪啪视频诱惑 | 国偷自产在线精品 | 国产精品无码一区二区三区免费 | 精品无码视频二区 | 91精品自拍视频在线观看 | 爆爽久久久一区二区又大又黄又嫩 | 国产精品美乳在线观看 | 国产精品制服一区二区 | 国产精品v日韩精品v | 国产午夜亚洲精品三区 | 国产色无码精品视频免费 | 99国产精品2025视频全部 | 国产真实乱免费高清视频 | 国产精品免费aⅴ片在线观看 | 高清无码一区二区在线观看吞精 | 国产精品视频一区视频二区 | 丰满少妇三级全黄 | 成人综合国产成人亚洲 | 91久久精品国产一区二区 | 国产自产视频 | 精品亚洲aⅴ在线观看 | 国产一区二区三区三级无码 | 国产日韩一区二区三区免费高清 | av收藏夹| 国产三级在线观看视频 | 国产毛片网| 91亚洲福利 | 国产精品亚洲综合 | 国产精品无码1区2区3区 | 国产精品免费久久久久电影网 | 国产精品高潮在线 | 国产成人精品久久亚洲高清不卡 | 国产精品无码永久免费男叫 | 国产高清一区二区三区四区 | 91久久精品无码一区二区大 | 91麻豆精品国 | 国产无套内射一级毛片农民工 | 精品久久久久久天美传媒 | 国产成人精品2025 | 国产精品亚洲日韩欧美在线观看 | 国产一区二区三区四区二区 | 国产麻豆精品乱码一区 | 国产三级观看久久 | 国产精品办公室沙发 | 国产区精品一区二区不卡中文 | 国产精品一区二区三区01 | 国产麻豆一区二区三区精品视频 | 2025国产午夜福利久久 | 高清国产在线拍揄自揄视频 | 91av视频在线免费观看 | 国产成年女人人aa人视频高清 | 91视频直播app| 国产午夜免费一区二区三区 | 国产成人极品 | 国产精品成人精品天天看视频 | 精品三级久久久久电影我网 | 国产精品香蕉成人网在线 | 国产呦精品一区二区三区 | 69国产成人综合久久精品 | av天堂手机版在线观看网站 | 国产成人欧美亚洲日韩电影 | 国产盗摄高清在线播放 | 国产成a人亚洲精v品在线观看 | 国产三级小视频在线播放完整 | 国产欧美精品一区 | 国产精品一区自拍 | 福利视频欧美精品 | 精品日韩一区精品日韩国产 | 国产亚洲日本精品成人 | 国产成人福利免费视频 | 91黑丝大长腿你视频里见过我 | 国产一区日韩二区欧美三区 | 精品国产av无码久久久黄 | 97人人超碰国产精品旧版 | 精品熟女少妇a∨免费久久1 | 精品一级毛片一区2区3区 | 囯产精品一区二区三区乱码 | 国产欧美日韩综合视频专区 | 国产白丝jk捆绑束缚调教视频 | 2025亚洲国产精品无码 | 国产自在自线精品午夜视频 | 国产无套内射久久久国产 | 2025国产拍视频最好的手机 | 国产三级国产精品 | 国产视频在线一区二区三区 | 成人无码a区视频在线观看 成人无码a区在线观看视 | 国产成人18黄网站在线观看 | 99久久精品国产自在首页 | 国产高清爆乳乱码女大 | 911亚洲精选在线观看 | 精品高清免费网站 | 国产精品视频一区二 | 国内国外精品一区二区 | 91嫩草国产 | 国产制服日本一区二区 | 成人午夜精品久久久久久久小说 | 成人免费区一区二区三区 | 成人无码国产一区二区 | 国产无码啪啪视 | 高清无码一区二区在线观看吞精 | 东京热久久精品 | 国产高清中文无码在线视频 | 成人欧美一区 | 国产va免费视频一区二区三区 | 国产蜜桃tv一区二区无码 | 国产精品成人观看视频 | 国产精品黑色丝 | 国产三級精品专区 | 国产aⅴ无码专区亚洲av | 国产av超爽剧情系列 | 国产午夜激无码毛片久久hd | 国产成人精品一二区 | 国产在线视频最新中文字幕 | 国产蜜桃扣扣传媒av性色 | 国产午夜无码片在线观看影院 | 国产一区二区三区日韩欧 | 国产女人喷浆抽搐高潮视频 | 国产成人爱片免费观看视频 | 91福利视频导航 | 国产v片在线播放免费无遮挡 | 国产一区亚洲二区日韩三区 | 91精品国产成人久久久久久 | 国产在线视频区电影 | av一区二区三区传媒 | av无码免费永久在线观看 | 国产精品一区伦免视频播放 | 国产二区视频在线观看 | 国产美女精品一 | 成人综合色在线观看网站 | 91露脸对 | 2025国产精品极品在线 | 国产女主播视频一区二区三区 | 国产精品丝袜久久久久久聚色 | 国产精品一区二区三区在线播放 | 国产无套护士在线观看 | 国产午夜精品一区不卡av | 精品亚洲成av人在线观看 | 国产av无码专区亚洲a∨毛片 | 国产女同一区二区三区五区 | 91在线日| 国产午夜免费一区二区三区 | av免费无码不卡一区二区 | 国产三区欧美日韩 | 国产成人年无码av片在线观看 | 2025年国产中文字无 | www在线观看一区二区三区 | 国产日韩欧美激情视频在线观看 | 国模av无码无在线观看 | 国产av国片 | 国自产偷精品不卡在线 | 成人一区二区三区视频在线观看 | 国产成本人片无码免费 | 91精品一 | 国产成人精品精品日本亚洲 | 国产成人在线一 | 韩国三级激情片在线观看 | 黄色av无码 | a性色生活片久久毛片牛牛 a亚洲va老司机 | 18禁黄无遮挡免费网站国产 | 精品国产自在91欧美日韩 | 精品国产资源站 | 18禁喷水流白浆自慰视噜噜噜 | 国产高清天干天天天 | av每日更新 | 91成人亚洲综合欧美日韩 | 国产高清在线精品一区不卡 | av麻豆级在线播放 | 成人午夜精品一级毛片免费网站 | 国产精品亚洲第五区在线 | 国产真人无码作爱视频网站 | 国产原创剧情化妆师在线观看 | 国产欧美日产高清欧美一区二区 | 国产丝袜无码精品一区二区三区 | 精品亚洲一区二区三区在 | 国产高清在线精品一区不卡 | 国内免费视频一区二区三区 | av无码久久久久不卡网站下载 | 国产黄色片网站a欧美视频 国产黄色片一级a级特级 | 高清无码在线观看越南专区 | 精品国产仑片一区二区三区 | 精品亚洲香蕉一区二区 | 国产成人久久精品二三区麻豆主演 | 91精品电影| 国产精品无码直接看 | 国产成人精品一区二区视频免费 | 国产三级理论电影在线观看网址 | 国产精品无码亚洲精品2025 | 国产成人精品a视频免费福利 | 国产精品偷伦视频观看 | 国产成人一区二区三区毛片 | 国产亚洲第一午夜福利合集 | 国产av秘无码一区二区三区 | 国产高清波多野结衣 | 国产精品自产拍在线网站 | 国产精品国产三级国产 | 91av免费观看 | 国产精品亚洲色一色 | 69久久国产露脸精品国产 | 2025国产免费自拍视频 | av永久天堂一区二 | 成人午夜福利电影 | 国产成人综合亚洲精品 | 精品人妻无码一区二区三区丝袜 | 国产精品熟女视频一区二区 | 国产麻豆激情无码视频 | av无码久久久久不卡网站毛 | 国产精品片天天看视频 | 国产午夜精品一区二区三区漫 | 国产精品成人a区在线观看 国产精品成人h视频 | 国产精品一v二v在线观看 | 国产欧美精品久久三级 | 99久久久国产精品免费软件 | 国产日韩av在线 | 97无码人妻视频在线 | 成人亚洲精品影院老金 | 国产美女被遭高潮免费 | 91av福利| 国产精品欧美福利 | 国产在线精品二期不卡 | 成人无码h动漫在线网站免费y | 国产91精品久久 | 国产精品视频一区二区三区四区 | 国产高清亚洲一区二区三区 | 国产原创中文精品经理篇 | 国产一区二区三区高清av | 精品国内自产拍在线看99 | 国产精品无码一区二区三级 | 成人国产免费午夜福利片在线 | 精品视频在线观自拍自拍 | 国产一区丝 | 国产精品内射婷婷一级二 | 国产极品美女高潮无套在线 | 国产精品视频线观看 | 国产成人一区二区三区a片 国产成人一区二区三区电影 | 国产黄片三级视频 | 国产午夜福利在线观看免费 | 国产无码精品一区二区 | 国产美女被遭高潮免费网站 | 91成人午夜性a | 精品日本少妇免费 | 国产亚洲中文一区二区三区 | 国产精品国产三级麻豆 | 国产麻豆91精品免费观看 | 国产成人手机在线视频在线观看 | 精品国产一区二区三区久久久蜜 | 国产高清不卡无码视频 | 精品久久免费一区二区三区四 | 91全国精品免费青 | 加勒比久久综合久久鬼色 | 国产精品一区一级毛片 | 精品国产福利在线观看不卡 | 国产精品精品国 | 精品三区二区一区 | 精品一区二区国产在线观看 | 精品久久无码专区国产精品发布 | 变态sm天堂无码专区 | 18禁无遮挡羞羞啪啪免费网站 | 国产毛片基地在线观看 | 国产综合精品久久久久成人影 | 国产三级电影在线播放 | 国产精品三级国产电影 | 国产精品一区不卡在线观看 | av无码国产精品性色aⅴ | a级毛片免费全部播放经典 a级毛片免费全部播放无码 | 国产成人福利美女 | 国产按头吞精在线视频 | 国产成人a∨无码 | 国产白浆二区二区 | 国产无码一区二区三区不卡视频 | 国产成人精品午夜视频 | av视频在线观看 | 成人免费xxxxx疯狂做受 | 国产激情国语对白普通话 | 国产精品一级二级在线观看 | 国产精品高清一区二区三区不卡 | 国产熟女亚洲精品明星自拍 | 国产一区二区三区免费观看在线 | 99久久无色码中文字幕人妻 | 国产av剧情md精品麻豆 | 国产在线精品二区 | 国产成人一区二区三区影院免费 | 精品无码av手机在线播放 | 国产成人国产三级 | 精品毛片免费观看 | 91欧洲在线视精品 | 国产熟女露脸大叫高潮 | 国产极品美女高潮抽搐免费网站 | 国产精品丝袜熟女 | 精品99一区二区三区四区 | 国产在线无码免费专区 | 国产精品大片大片看大 | 国产三级放荡的护士 | 国产一区二区视频在线视频 | 国产精品成人影院在线观看 | 国产高清无码不卡二区三区 | 国产女性精品一区二区三区 | 国产亚洲精品4区在线观看 国产亚洲精品91 | 国产一卡2卡3卡四卡精品网站 | 91丝袜在线观看 | 国产妇女馒头高清泬 | 国产午夜亚洲精品理论片不卡 | 99亚洲精品卡2卡三卡4卡2卡 | 国产中文字字幕一级毛片 | 国产a级作爱 | 国产三级不卡在线观看 | www.无码 | 国产一区二区 | 91精品国产自产在线观看不卡 | 国产视频一区二区在线播放 | 99国产高清久久久久久网站 | 国产三级黄片毛片 | 成人a免费α片在线视频网站 | 韩国免费a级作爱片无码 | 国产精品乱码高清在线观看 | 国产一二三区在线 | 国产在线拍偷自揄拍无码 | 国产精品成人免费视频一区 | 高潮白浆潮喷正在播放 | 国精产品一区二区三区 | 国产高清一区二区三区视 | 91露脸熟女四川熟女在线观看 | 国产欧美日韩在线视频重口味 | 加勒比一本大道香蕉av | 国产制服精品一区二区视色 | 国产亚洲日韩欧美另类丝瓜app | 国产尤物精品无码成人 | 91久久人爽人人添人人澡 | av无码网站一区二区 | 国产一区二区理论在线观看 | 国产大学生粉嫩无套 | 国产激情一级毛片在线视频 | 波多野结衣中文字幕一区二区三区 | 91口爆吞精国产 | 成人精品一区二区91毛片不卡 | 成人午夜亚洲精品无码网站 | 国产精品毛片av一级 | 国产传媒一二三区av | 国产精品va无码一区二区 | 国产一级片内射视频在线播放 | 国产精品无码一区二区 | 成年永久一区二区三区免费视频 | 69国产成人综合久久精品 | 91精品国产成人网在线观看 | 国产麻豆精品久 | 国内精品美女a在线播放 | 91日韩视频在线观看 | 99久久精品爆乳 | 国产亚洲欧洲ⅴ综合一区 | 国产av亚洲精品久久久久久 | 国产成人无码a区在线 | 国产精品自拍欧美日韩 | 国产成人综合在线视频vr | 99精品视频在线观 | 国产成人精品 | 国产精品三p一区二区视频 国产精品三级 | 成年女人看片免费视频播放人 | 国产午夜鲁丝片av无码第一 | 国产精品国产精品无码 | av天堂电影网 | 国产精品视频第一区 | 国产成人片欧美日本在线观看 | 2025最新国产三级在线看 | 国产精品艺校美女校花在线 | 国产免费怕怕免费视频观看 | 国产三级在线播放线 | 精品国产无码av | 99亚洲国产精品色一区二区三 | 国产成人午夜性a一级毛片 国产成人午夜一区二区 | 2025久久老司机福利精品网 | 国产片婬乱一级毛片调 | 国产精品日韩精品久久密挑 | 国产精品视频系列专区 | 国产成人综合日韩精品无码 | 精品人妻一区二区三区四区在线 | 精品国产香蕉伊思人在线又爽又黄 | 国产午夜激无码av毛片护士 | 国产午夜大秀一区二区三区 | 成年女人看片免费视频播放人 | 国产午夜精品久久久久 | 2025国产在线观看不卡视频 | 国产艳情熟女视频 | 国产精品无码翘 | 国产在线精品一区二区黑人 | 精品69视频一区二区三区 | 国产精品亚洲精品日韩 | 国产在线秘麻豆精品观看 | 绯色国产av无码一区二区 | 91麻豆精| 国产精品免费一区二区三区观看 | 91麻豆国产原创剧情片 | 国产福利在线观看 | 国产精品女人高潮毛片 | 国产精品偷伦视频观看免费 | 69国产超薄丝袜足j在线直播 | 成人精品日韩一区二区 | 国产成人电影在线观看 | 18白丝水手服自慰喷水网站 | 精品国产一区二区三区国产馆 | 国产人妖视频一区在线观看 | av无码一区二区三 | 国产成人精品第一区二区 | 国产夜色精品一区二区 | 91精品在线免费 | 国产午夜福利在线不卡视频 | 国产99热精品码毛片在线 | 国产成人亚洲精品无码h | 国产精品一区高清在线观看 | 国产成人精选视频在线观看不卡 | 99久久婷婷国产综合精品免费 | 东京一本到一区二区三区 | 国产一区二区三区免费观看久久 | 国产精品白浆在线观看无码专区 | 国产精品一区二区久久精品不卡 | 国产美女a做受大片在线观看 | 精品国产人成亚洲区大色婷婷 | 国产一线久| 国产传媒果冻天美传媒怎么 | 国产午夜精品久久久久婷看片 | 国产极品尤物粉嫩泬在线观看 | 成人黄色视频在线观看 | 国产精品成人有码在线观看 | 精品国产高清在线看国产 | 国产一区二区精品人妖系列 | 2025天天做夜夜爽视频综合 | 国产精品亚洲第一区在线观看 | av无码精品人妻色欲 | 2025亚洲精品无码在钱 | 极品尤物国产在线播放 | 国产精品白嫩在线观看 | 国产后入清纯学生妹 | 国产一区二区免费视频 | 国产精品高清一区二区三区不卡 | 成人午夜精品久久久久久久 | 91国在线高清视频 | 国产精品人成在线观看 | 国精产品一二二线精东 | 91久久高清一区视频 | 国产精品美女久久久久av超 | a级毛片无码免费久久真人软件 | 不卡高清在线一区二区三 | 精品久久久无码人妻中文字幕免费 | 国产三级精品美女三级 | 69国产成人综合久久精品 | 国产护士囗交吞精视频 | 精品无码成人网站久久久久久无码 | 国产萌白酱福利区一区二区 | 成人拍拍拍免费视频网站 | 精品国产一区二区三区制服 | 99国产亚洲精品美女久久久久 | 国产精品精品国 | 91在线无码精品秘?入口91 | 91久久国产成人网站 | 国产偷伦视频片手机在线观看 | 大尺度无遮挡激 | 国产99久久久国产精品免费高清 | 精品国产日韩欧美一区二区 | 成人精品丝袜在线一区 | 精品国产乱码一区二区三区网站 | 国产一区日韩二区欧美三区 | 国产精品中文字幕在 | 国产午夜精品久久久久婷婷 | 国产日韩午夜三级无码专区直播 | a级毛片无码免费久久 | 国产字幕无码avbb | a级毛片无码视频 | 国产成人毛片精品不卡在线 | 国产午夜久久一区二区三区 | 激情欧美日韩一区二 | 丰满少妇高潮惨叫久久久一 | 成人亚洲欧美久久久久 | 国产精品毛片久久久久久久av | 国产精品高潮呻吟av久久小说 | 国产自在线 | 大桥未久在线一区 | 国产亚洲成人日韩 | 国产蜜臀av在线一区尤物 | av一区二区三区高清久久 | 国产无套视频在线观看aa在线 | av片无码v | 国产精品无码亚洲精品2025 | 精品无码一区二区三区aⅴ 精品无码一区二区三区av | 2025国精产品一二三四区 | 99久久精品国产国产毛片 | 国产+刺激+高潮 | 成人3d动漫一区二 | 国产精品成人无码a片免费网址 | 91精品一区二区三三免 | 国产原创日韩精品国产 | 国产精品高清中文字幕 | 国产亚洲综合色就色 | 国产高潮流白浆喷水免费网站 | 国产成人女人视频在线观看 | 精品福利在线观看 | 91国内精品久久久久怡红院 | 91热国内精品永久免费观看 | 国产不卡高清 | 精品国产99久久久久久www | 国产精品麻豆天美精品久久 | 国产精品成人麻烦视频 | 国产码欧美日韩高清综合一区 | 国产偷窥在线 | 国产交换配乱婬视频a免费 国产交换配乱婬视频手机版 | 成人午夜有码一区二区 | 国产午夜精品一区二区三区老 | 国产毛片精品 | 国产精品爆乳奶水无码视频免费 | 国产无码毛片一区二区三区 | 97人妻精品一| 国产精品高潮久久久久无码av | av无码午夜福利一区二区三区 | 国产成人五月综合网 | 国产精品一区二区不卡 | 国产精品无码专 | 91精选日韩综合永久入口 | 91精品国产高清91久久久久 | 国产福利久久 | 97人妻免费上传视频 | 国产精品午夜福利免费 | 国偷自产av一区二区三区吞精 | 国产自产视频在线观看 | 国产精品国产三级国产an | 国产va无码人在线观看天堂 | 国产精品高清第二页 | 精品福利一区二区在线观看 | 国产日韩一区二区不卡视频 | 精品熟女碰碰人人a久久 | 国产三级片在线视频观看 | 成人亚洲一区无码久久 | 国产丝袜在线精品丝袜 | 囯产精品久久久久久av三级 | 国产高潮流白浆喷水免费网站 | 国产成人精品亚洲一区二区三区 | 国产免费无码v片在线观看不卡 | 超碰国产一区二区 | 国产熟女乱子视频正在播放 | 国产精品无码一区二区三四区 | 18禁无遮挡无码网站免费 | 国产亚洲欧美日本韩国黄色 | 国产av午夜精品一区二区入口 | 国产美女视频一区二区二三区 | 国产欧美日韩制服丝袜三区 | 国产ts人妖在线视频网站 | 国产免费天天看高清影视线 | 国产麻豆精选av精彩内容大揭秘 | 91老色批网站免费看 | 国产成人精品视频免费 | 国产成人午夜性a一级毛片 国产成人午夜在线观看91 | 国产精品成人自产拍在线观看0 | 国产成人在线播放 | 91午夜福利国产在线观看 | 国产丰满老熟妇乱xxx1区 | 国产精品无码字幕不卡 | 国产一区二区三区高清 | 国产高清天干天天天 | 国产高清色诱视频在线播放 | 囯产精品久久久久久久久久无 | 国产精品原创午夜宅男视频 | 91在线无码精品毛片 | 国产精品欧美亚洲日本综合 | 国产精品无码免费专区午 | 国产中文字幕久青草免费在线看 | 国产成人无码a区播放视频 国产成人无码a区电影 | 国产99久久精品一区二区 | av无码中文字幕不卡一二三区 | 国产精品成人无码久久久久久 | 91在线无码视频 | 成人午夜精品福利视频 | 国产毛片一区二区三区精品 | 丰满少妇人妻hd高清大乳在线 | 国产美女精品在线观看 | 国产精品成人v?在线观看 | 国产午夜精品理论在线观看 | 91av中文字幕| 国产成人无码精品久久久免费 | 国产另类日韩欧美亚洲 | 国产精品高清第二页 | 国产观看精品一区二区三区 | 丰满人妻一区二区三区四季av | 国产av无码专区亚洲精品网站 | 国产成人av无码片在线观看 | 国产三级| 国产91精品一区二区麻豆亚洲电影 | 国产精品成人av无码久久 | 激情都市综亚洲精品综合 | 国产超碰97久久人人操人人操 | 国产高清在线精品免费不卡 | 91av视频在线| 国产成人久久精品激情91 | 国产一人人看在线视频 | 国产草裙社区在线观看 | 成人精品视频在线观看 | 成人va在线一区二区三区四区 | 国产欧美日韩午夜在线观看 | 精品人妻一区二区三区夜夜嗨 | a亚洲国产v高清不卡 | 国产精品一区最新久久 | av一区二区三区高清久久 | 国产国语对白露脸 | 极品粉嫩国产18尤物在线播放 | 国产一区视频在线免费观看 | 99久久婷婷免费国产综合精品 | 国产亚洲第一午夜福利合集 | 国产a国产片国产 | 国产成人自在自线视频 | 国产午夜精品久久久 | 成人一级视频毛片 | 极品美女亚洲区 | 18禁人看免费无遮挡网站不卡 | 99久久伊人久久 | 精品福利岛国日韩av | 高清视频一区二区三区 |