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

金喜正规买球

SQL Compare使用教程:如何使用SQL Compare CLI和批處理腳本構建和填充SQL Server數據庫

翻譯|使用教程|編輯:楊鵬連|2020-08-06 10:04:03.290|閱讀 294 次

概述:Phil Factor提供了功能強大的DOS批處理腳本,當與SQL Compare CLI結合使用時,您可以在開發過程中從源構建數據庫,并用測試所需的特定數據集填充它們。

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

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

點擊下載SQL Compare試用版

假設您需要構建數據庫的最新版本,將其存儲有測試所需的數據,然后分發該數據庫的多個副本。到目前為止,最快,最簡單的方法就是使用SQL Clone,尤其是在數據庫很大的情況下。或者,使用SQL Toolbelt,則可以從源目錄構建五個副本中的每個副本,通過BCP將它們填充到標準測試數據集,然后使用SQL Change Automation和某些PowerShell(或SQL Compare CLI和PowerShell)來部署它們。

但是,顯然,仍然有Ops的人更喜歡使用PowerShell而非DOS腳本,因為我最近關于該主題的博客之一令人驚訝地受歡迎。他們熟悉它,并且經常仍然維護著現有DOS腳本的大量存檔。我沉思,可以創建一個執行相同功能的DOS批處理腳本嗎?沒有PowerShell,沒有SMO,只有SQL Compare,SQLCMD和BCP。

DOS批處理腳本

乍一看,很難想象沒有一種比DOS Batch更有前景的腳本語言,盡管它特別適合于文件系統任務。它的根源可以通過CP / M和MSDOS追溯到UNIX。它仍在MSDOS中。這些年來,我不得不多次使用它來執行沒有現實選擇的任務。令人驚訝的是,它仍然吸引了少量但專注的追隨者。有關示例的最新和有趣的集合,請參見“ Rosetta代碼:Category:Batch文件”和DosTips – DOS 批處理指南。Rosetta Code網站允許您比較不同語言執行標準算法和任務時的代碼。

除了給管理員帶來溫暖,懷舊的感覺外,有時還存在共享數據庫租用之類的時間,或者創建帶有特殊數據集進行測試的數據庫時,像這樣基于DOS的方法會更方便。

更重要的是,幾乎每個版本管理工具,構建自動化工具,部署工作流系統,配置管理或持續集成工具都允許您執行DOS批處理。盡管PowerShell在Windows上非常流行,但它與我們所使用的通用腳本語言非常接近。

建立和填充數據庫的任務

在開發和測試期間,您通常需要創建一個或多個數據庫版本的副本,并存儲測試所需的特定數據。您可能需要維護幾個數據集。例如:

  • 可能不允許您訪問真實數據。這樣做有很多充分的理由。它可以是私人的也可以是機密的。這可能是非法的。因此,您將需要一個生成的數據集,該數據集在本質上與實數據盡可能接近,或者是真實數據的蒙版匿名版本。
  • 您可能正在支持一系列需要標準化數據集的測試,每次測試都需要使用標準化數據集,以使測試人員能夠進行黑盒測試。
  • 您可能正在進行可伸縮性測試,以確保數據庫設計在處理不同數量的數據時性能良好。
我們需要一種自動的方法來構建每個工作數據庫副本。如前所述,雖然有更簡便,更快捷的方法,但是我們將使用DOS批處理文件。它將使用SQL Compare從源目錄構建數據庫,然后使用BCP文件現有目錄中的數據填充該數據庫。為此,您提供根目錄的名稱,并將其存儲在代表服務器和數據庫的子目錄下的數據。它根據需要創建這些目錄。DOS腳本聯系新建的數據庫,獲取表列表,然后將數據從源目錄到目標進行BCP。
創建初始工作副本后,我們可以將其用作源數據庫來創建后續副本。在創建空的目標數據庫之前,DOS批處理腳本將檢查目標并刪除任何同名的現有數據庫。然后,它使用SQL Compare將空目標的模式與源同步,然后最終復制源數據庫中的所有數據。
除許多看似簡單的任務外,還存在某些復雜性。目標服務器需要使用正確的擴展名進行適當的設置,例如全文搜索,以滿足數據庫的要求。數據庫的要求可能需要特殊的過濾器或開關。使用SQL Compare,我們可以使用ArgFiles來優化腳本以允許這樣做。我展示了一種滑入BCP中可配置參數的方法,因為我需要具有這樣的設備才能進行ID /密碼驗證。
如果表或數據庫中包含非法名稱且其中帶有空格,則必須加以處理。如果在存儲文件時將它們用作目錄名,則SQL Server實例名稱也需要修改。
一項比較棘手的任務是從磁盤讀取任何必需的ID和密碼。將它們保存在腳本中是可怕的。至少必須將它們保存在用戶區的文件中,在該文件中NTFS安全性應使它們不被窺視。在理想情況下,每個應用程序都將接受并讀取標準連接字符串,但可悲的是,每個CLI應用程序似乎都有不同的方式來執行此操作,因此必須對憑據進行解析并為命令行正確布局。

運行代碼

出于本文的目的,該腳本采用了意識流樣式,以使其易于遵循,盡管如果您要做的工作很多,可以很容易地將其變成一個函數。

Echo off
VERIFY errors 2>nul
SETLOCAL ENABLEDELAYEDEXPANSION 
SETLOCAL ENABLEEXTENSIONS
Set outcome=did our best
if ERRORLEVEL 1 (
   echo could not set local execution environment
   goto bombsite
   )
REM set output to yes or no depending on whether you want the source to have its data copied out
Set output=yes 
REM set input to yes or no depending on whether you want the target to have its data copied in
Set input=yes
Rem set Source to the database you wish to copy
Set Source=MySourceDatabase
Rem Set SourceServer to the name of the server or instance to copy from
Set Sourceserver=MySourceServer
Rem set Target to the database you wish to copy to
Set Target=TestCopy
Rem BEWARE!! It deletes the existing copy of the database
Rem Set TargetServer to the name of the server or instance to copy to
Set TargetServer=MyDestinationServer
REM Specify your work directory. I chose 'BatchBCP' in my user area
Set workpath=%userProfile%\BatchBCP
Rem Specify a scripts directory for the source if you want one. otherwise put 'none'
Set SourceScriptsDirectory=c:\MySQLSourceDirectories\MyDatabase
REM before you start, if you need to write out your SQLCMD credentials to a file in your user
rem area using code like this, ONLY if you use SQL Server Credentials.
Rem echo MyUserID/MyPassword>%userProfile%\%TargetServer:\=_%SQLCompare.txt 
rem echo MyOtherUserID/MyOtherPassword>%userProfile%\%SourceServer:\=_%SQLCompare.txt 
Rem if ERRORLEVEL 1 (
Rem   echo Could not write Source Credentials
REM   goto bombsite
REM   )
rem
REM read in your Source SQLCMD command and credentials if you have any
if exist %userProfile%\%SourceServer:\=_%SQLCompare.txt (
   Set /p SourceCredentials=<%userProfile%\%SourceServer:\=_%SQLCompare.txt 
   )
if ERRORLEVEL 1 (
   echo Could not read in Source Credentials
   goto bombsite
   )
Rem Parse the source credentials into two variables
set "Sourceuid=%SourceCredentials:/=" & set "SourcePw=%"
Rem credentials are presented in two different ways by the CLI apps
Set SourcesqlcmdCredentials= /U %Sourceuid% /P %SourcePw%
Set SourceSQLCompareCredentials= /username1:%Sourceuid% /Password1:%SourcePw%
rem set source credentials correctly for windows security
IF NOT DEFINED  SourceCredentials ( 
  Set SourcesqlcmdCredentials =
  set SourceSQLCompareCredentials =
 )
REM read in your Target SQLCMD command and credentials if you have any
if exist %userProfile%\%TargetServer:\=_%SQLCompare.txt (
Set /p TargetCredentials=<%userProfile%\%TargetServer:\=_%SQLCompare.txt
)
if ERRORLEVEL 1 (
      echo Could not read in Target Credentials
      goto bombsite
    )
Rem Parse the target credentials into two variables
set "Targetuid=%TargetCredentials:/=" & set "TargetPw=%"
Rem credentials are presented in two different ways by the CLI apps
Set TargetsqlcmdCredentials= /U %Targetuid% /P %TargetPw%
Set TargetSQLCompareCredentials= /username2:%Targetuid% /Password2:%TargetPw%
rem set target credentials orrectly for windows security
IF NOT DEFINED  TargetCredentials ( 
  Set TargetsqlcmdCredentials =
  set TargetSQLCompareCredentials =
 )
Rem Now we check the Target database on the target server to see if it
Rem already exists, If so, we delete it and create an empty database
Set QUERY= IF EXISTS (SELECT name FROM sys.databases  where NAME LIKE 'testcopy' ) DROP DATABASE TestCopy; CREATE DATABASE TestCopy
sqlcmd -S %targetServer% %TargetsqlcmdCredentials% -d master -h -1  -f 65001  -Q "%QUERY%"
if ERRORLEVEL 1 (
   echo Failed to use target %targetServer% to create %target%.
   goto bombsite
   )
Rem now we synchronize the source with the target to provide  a fresh 
Rem new database at the right level
if %SourceScriptsDirectory% == none (
   echo synchronizing database %Source% on %sourceServer%  with %Target% on %TargetServer%
   "%ProgramFiles(x86)%\Red Gate\SQL Compare 13\sqlcompare.exe" /server1:%sourceServer% /database1:%Source%  %SourceSQLCompareCredentials% /server2:%targetServer% /database2:%Target% %TargetSQLCompareCredentials% /Synchronize
   SET outcome=created database %Target% on %TargetServer% from  %Source% on %sourceServer%
   ) else (
   echo synchronizing scripts directory %SourceScriptsDirectory% with %Target% on %TargetServer%
   "%ProgramFiles(x86)%\Red Gate\SQL Compare 13\sqlcompare.exe" /scripts1:%SourceScriptsDirectory% /server2:%targetServer% /database2:%Target% %TargetSQLCompareCredentials% /Synchronize
   SET outcome=created database %Target% on %TargetServer% from scripts
   )
if ERRORLEVEL 1 (
   echo An error with SQL Compare occurred.
   goto bombsite
   )
REM see the output onscreen while debugging.
REM check whether the database directory within the workpath/server directory exists
if not exist "%workpath%\%SourceServer:\=_%\%Source%" (md %workpath%\%SourceServer:\=_%\%Source%) 
if ERRORLEVEL 1 (
   echo An error creating "%workpath%\%SourceServer:\=_%\%Source%"  for database occurred 
   goto bombsite
   )
Echo Copying table data from %SourceServer%.%Source% to "%workpath%\%SourceServer:\=_%\%Source% "
Rem Create the query that brings you the list of tables. This is used for both 
rem the input and output operations. We can cope with tables that use  illegal characters
Set QUERY="SET NOCOUNT ON; SELECT replace(Quotename(Object_Schema_Name(object_id))+'.'+Quotename(name),' ','--') AS The_Tables FROM sys.tables WHERE is_ms_shipped=0;"
Rem only do the next block if the user wants data copied out from the source
if %output% == yes (
   REM Execute the query and work through the returned list of tables
   for /F usebackq %%i in (`sqlcmd -S %sourceServer%  %SourcesqlcmdCredentials%  -d %Source% -h -1  -f 65001  -Q %QUERY%`) do (
      rem for every tablespec in the list append the following text ....
      REM catch the first error caused by the sqlcmd 
      if ERRORLEVEL 1 (
         echo An error ovccured while accessing  %SourceServer%  to get the list of tables
         goto bombsite
      )
      Set Tablename= %%i
      for /f "tokens=* delims= " %%a in ("!Tablename!") do set Tablename=%%a
      Rem correct the name of the table
      Set Tablename=!Tablename:--= !
      REM change a dot for a dash as it isn't legal
      set filename= !Tablename:.=-!
      REM trim the filename- well, remove all spaces
      Set "filename=!filename: =!"
      echo Copying out data from !Tablename! in database %Source% on server %SourceServer% to !filename!.bcp
      BCP "!Tablename!" out  %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp  -n -d %Source%  -S %sourceServer%   %SourcesqlcmdCredentials% 
      if ERRORLEVEL 1 (
         echo BCP error when copying out data from !Tablename! in database %Source% on server %SourceServer%
         goto bombsite
         )
      ) 
      SET outcome=%outcome%, copied out data from %Source% on %SourceServer%
   )
Rem only do the next block if the user wants data copied out to the target
if %Input% == yes (
   Echo Copying table data to %TargetServer%.%Target% from "%workpath%\%SourceServer:\=_%\%Source%"
   REM Execute the query and create the entire SQL Command file that will be executed
   for /F usebackq %%i in (`sqlcmd -S %TargetServer%   %TargetsqlcmdCredentials%  -d %Target% -h -1  -f 65001  -Q %QUERY%`) do (
      rem for every tablespec in the list append the following text ....
      REM catch the first error caused by the sqlcmd 
      if ERRORLEVEL 1 (
         echo An error occured while accessing  %TargetServer%  to get the list of tables
         goto bombsite
         )
      Set Tablename= %%i
      for /f "tokens=* delims= " %%a in ("!Tablename!") do set Tablename=%%a
      Rem correct the name of the table
      Set Tablename=!Tablename:--= !
      REM change a dot for a dash as it isn't legal
      set filename= !Tablename:.=-!
      REM trim the filename- well, remove all spaces
      Set "filename=!filename: =!"
      echo Copying in data to !Tablename! in database %Target% on server %TargetServer% from %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp
      BCP "!Tablename!" in  %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp -n -d %Target% -E -S %TargetServer%   %TargetsqlcmdCredentials% 
      if ERRORLEVEL 1 (
         echo BCP error when copying in data from !Tablename! in database %target% on server %TargetServer%
         goto bombsite
         )
      ) 
   SET outcome=%outcome%, copied out data from %Source% on %SourceServer%
   )
 
goto end 
:bombsite
Rem This is where the program goes if a problem is detected
color 04
Echo Sadly, we failed, though we %outcome%!
echo on
ENDLOCAL
color
Exit /b 1
:end
REM This is where we go if all ended well. 
Echo we %outcome% and finished successfully
ENDLOCAL
echo on
Exit /b 0
全部測試

運行這個非常簡單。您做什么取決于任務。當然,您可以為每個任務設置批處理文件的不同版本,也可以選擇較低級別的維護選項,以記住源中注釋的配置選項。

1.從源目錄創建沒有數據的目標數據庫

在腳本的開始,在路徑的源目錄作為變量的值填充SourceScriptsDirectory,添加目標數據庫的名稱目標和實現目標服務器TargetServer,并在該指定workpath文件位置的路徑包含本地BCP數據文件的目錄。將輸出設置為no,將輸入設置為no(意味著不要將數據從源復制或復制到目標)。

2.從源目錄創建目標數據庫,并從BCP目錄填充數據

在腳本的開頭,在變量SourceScriptsDirectory中填寫源目錄的路徑,將目標數據庫的名稱添加到Target并將目標服務器的名稱添加到TargetServer。指定要在workpath文件位置,路徑到包含原始數據BCP文件的目錄。將輸出設置為no并將輸入設置為yes(表示不從源復制數據,而是將其復制到目標)

????????????????-??????°???èˉ′???è?a??¨??????
3.從源目錄創建目標數據庫,并填充源數據庫中的數據

在腳本的開頭,在變量SourceScriptsDirectory中填寫源目錄的路徑,將目標數據庫的名稱添加到Target并將目標服務器的名稱添加到TargetServer。指定要在workpath文件位置,路徑到包含原始數據BCP文件的目錄。將輸出設置為yes,將輸入設置為yes(表示從源復制數據并將其復制到目標)。

????????????????-??????°???èˉ′???è?a??¨??????
4.將目標數據庫與源數據庫(數據中的BCP)同步

您只需要在腳本的開頭填寫源數據庫和服務器的名稱,目標數據庫和服務器的名稱以及放置本地BCP數據文件的工作路徑文件位置。將輸出設置為yes并將輸入設置為yes。

è?a??¨???????????°???èˉ′????????1???

5.在沒有數據的情況下將目標數據庫與源數據庫同步

和以前一樣,在腳本的開頭填寫源數據庫和服務器的名稱,目標數據庫和服務器的名稱以及工作路徑位置。將輸出設置為no并將輸入設置為no。

處理登錄憑證

除非您要使用Windows登錄名進行操作,否則還需要將SQL Server憑據寫入一個文件,正如我在源代碼中所指出的那樣,該文件用于在用戶區域根目錄中使用的每臺服務器。這僅必須執行一次,然后您應該刪除代碼!我提供了執行此操作的源代碼:

REM before you start, if you need to write out your SQLCMD credentials to a file in your user
rem area using code like this, ONLY if you use SQL Server Credentials.
Rem echo MyUserID/MyPassword>%userProfile%\%TargetServer:\=_%SQLCompare.txt 
rem echo MyOtherUserID/MyOtherPassword>%userProfile%\%SourceServer:\=_%SQLCompare.txt 
Rem if ERRORLEVEL 1 (
Rem   echo Could not write Source Credentials
REM   goto bombsite
REM   )
rem
只需刪除REM關鍵字,添加您的UserID和憑據,一切都應該很好。執行代碼后,不要忘記刪除代碼。

運行DOS批處理腳本

打開命令提示符,然后鍵入批處理文件的名稱(包括路徑),然后關閉。DOS文件的性質就是這樣,事情很容易出錯,但是這段代碼應該不會有太多問題。要進行調試,請先刪除@echo第一行的內容,以便查看批處理的運行方式。這里還有更多提示。
這是典型的輸出,執行剛剛完成:

運行腳本后,您已經包括了BCP OUT操作(output=true),您應該在此處的目錄中看到文件:

如果啟動SQL數據比較,它將告訴您數據庫的兩個副本中的數據都相同。SQL Server也會對元數據說同樣的話。

結論

可以在DOS下作為CLI應用程序運行的應用程序的樂趣在于,您可以從多種腳本語言和方法中進行選擇。盡管我喜歡PowerShell,但周圍有很多人,特別是在Ops中,他們實際上更喜歡DOS批處理語言,因為它離操作系統很近,它在現有腳本的大型庫中使用,并且無需運行即可運行。特殊的腳本環境。

SQLCMD是一個功能強大的系統,您可以輕松地用其他方法來做很多事情。甚至數據庫開發人員也可以在常用片段庫的幫助下,將DOS視為吊裝腳本的便捷方法。如果將此功能與具有CLI接口的數據庫工具(例如SQL比較,SQL數據比較或SQL數據生成器)結合使用,那么您將擁有一個功能強大的工具包,可用于創建最新的開發版本并用所需的特定數據集填充它們。

相關產品推薦:

SQL Prompt:SQL語法提示工具

SQL Toolbelt:Red Gate產品套包

SQL Monitor:SQL Server監控工具


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


標簽:

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

文章轉載自:

為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产精品激情自拍 | 高清一区二区亚洲欧美日韩 | 欧洲亚洲国产日韩综合一区 | 在线免费观看亚洲 | 亚洲自拍高清中文 | 欧美日韩一区 | 国产成年女人 | 日韩中文字幕在线观看 | 这里只有精品在线观看视频 | 中文字幕无线码一区2025青青 | 国产操穴 | 热99精品视频 | 日本黄页网站在线观看 | 国产欧美国产精品第一区 | 日韩欧美亚洲每日更新在线观看 | 成人碰碰视频公开老师 | 国产日韩一区二区三区高清 | 偷偷要色偷偷 | 精品不卡一区二区 | 国产精品勾引上司在线播放 | 成年轻人视频免费视频 | 国产一区自拍欧美 | 欧美亚洲国产激情一区二区 | 亚洲精品亚洲字幕 | 日韩欧美三级理论在线观看 | 久精品视在线观看视频 | 国产一区二区三区四区激情 | 性刺激的 | 野花香视频免费观看高清在线 | 亚洲已满18点击进入在线观看 | 中文字幕乱码亚洲精品 | 欧美激情αv一区二区三区 国语在线看免 | 精品一区二区五 | 成人人免费夜夜视频观看 | 亚洲欧美在线x视频 | 99热这里只有精品 | 一道免费一区二区三 | 青草视频 | 在线播放亚洲综合 | 免费大片黄国产在线观看 | 欧美一性一乱一交一视频 | 精品国精品 | 国产黄a三级三级三级看三级 | 九一国产精品视频 | 青春草在线视频免费观看 | 综合国产影视 | 国产黄在线观看免费视频45分钟 | 成人伦理在线观看国产 | 亚洲欧洲一区二区 | 国产伦子伦对白视频 | 免费安装 | 欧美理论片在线观看一区二区 | 婷婷国产99在线观看 | 草莓视频成人 | 欧美亚洲精品三区 | 精品国产亚洲三 | 欧美乱伦视频激情浪潮密臀 | 国产熟女绯色一区二区三区免费 | 国产在线一区二区三区不卡在线 | 国产亚洲综合一区柠檬导航 | 日韩欧美天堂 | 在线观看国产三 | 国产乱子经典视 | 亚洲码欧美码一区二区三区 | 97超视频在线观看视频在线 | 国产一区二区三区亚洲 | 国产精品亚洲午夜一区二区三区 | 在线观看国 | 红杏亚洲影院一区二区三区 | 亚洲码专区亚洲码专区 | 男子操性感黑丝美女视频 | 国产91对白在 | 国产一区二区不卡 | 亚洲韩国日本 | 国产手机精品自拍视频 | 亚洲狼人天堂 | 欧洲亚洲一区二区三区 | 亚洲专区日韩专区在线观看 | 91精品啪在线观看国产线免费 | 综合另类 | 免费国产一级a | 亚洲视频免费在线播放 | 国产日产亚洲系列电影 | 国产乱理伦片在线午夜观看 | 2025国产精品极品色在线 | 国产精成人品日日拍夜夜免费 | a在线看 | 国产精品偷伦视频观看免费 | 日本亚洲色大成网站www久 | 亚洲国产欧美日韩精品 | 欧美日韩国产中文字幕 | 天堂网一区二区 | 国产成a人亚洲精品无 | 国产精品日韩欧美一区二区三 | 亚洲精品老司机综合影院 | 国产人成视频在线免费观看 | 国产免费一级高清淫日本片 | 国产亚洲精品不卡 | 国产一区二区三区不卡在线观看 | 最近中文字幕在线中文视频 | 老司机永久免费视频网站在线观看 | 国自产精品手机在线观看视 | 超国产人碰人摸人爱视频 | 禁止18岁啪 | 东京干影院 | 免费观看一区二区三区 | 99国产视频有精彩视频 | 欧美日韩深夜视频在线观看 | 国自产偷精品不卡在线 | 三区在线播放 | 欧美精品黄页在 | 日本一本之道之视频在线不卡 | 欧美在线综合 | 国产一区二区三区日韩欧美 | 国产福利在线永久视频 | 国产精品免费视频观看玖玖 | 亚洲图片国产日韩欧美 | 不卡精品| 亚洲欧洲日产国产最新 | 成人动视频国产欧美精品 | 中文有码在线视 | 日韩欧美一区二区三区免费看 | 国产在线精品一区二区不卡顿 | 亚洲一区二区成人精品 | 麻花天美星空果冻 | 九月丁香婷婷激情四射视频一区 | 欧美性大战 | 俄罗斯美女真人性做爰 | 成人爽爽激 | 国产欧美一区二区三区不 | 欧美午夜理伦三级在 | 国产欧美一区二区三区户外 | 欧美国产日韩a在线观看 | 亚洲韩国欧美一区二区三区 | 亚洲小说欧美激情另类 | 日本亚洲国产一区二区三区 | 92午夜福利国产精品 | 午夜福利 | 国产黄大片在线视频 | 天美麻花星空视 | 欧美整片aⅴ免费 | 资源在线观看高清国产 | 日本高清 | 国产人成在线观 | 欧美日韩视费观看视频 | 国产91精品高跟丝袜在线 | 日本免费一区二区在线 | 日韩争樱花起源 | 男人的天堂在线视频 | 婷婷蜜桃国产精品一区 | 欧美精品一区二区三区中文 | 大片免费网站 | 福利片午夜免费观着 | 亚洲视频精品在线观看 | 国产一区二区不卡视频 | 亚洲+日本+欧洲+国产 | 欧美亚洲国产激情一区二区 | 国产午夜亚洲精品国产 | 五月天激情四射网 | 中文字幕在线有码高清 | 国产欧美日韩一 | 插我一区二 | 黄页免费观看 | 成人日动漫卡一区二区三区动漫 | 永久免费提 | 高清在线?视频大全 | 99精品国产高清自在线看超 | 977精品视频在线观看 | 国产精选在线观 | 美女自卫慰出水免费视频 | 国产精品宾馆在线精品酒店 | 日本中文字幕永久免费 | 日韩亚洲欧美一区二区三区综合 | 国产一区二区三区四区精 | 日韩精品一区二区三区观看 | 亚洲日本国产乱码va在线观看 | 精品国产自 | 欧美一性一乱一交一视频 | 中文字幕无线码中文字幕网站 | 欧美激情视频在线免费观看 | 国产精品视频第一区二区三区 | 好男人好资源神马在线 | 日韩在线精品成人v在线 | 国产在线一卡2卡三卡4卡免费 | 欧美亚洲制服 | 欧美日韩韩高清在线不卡 | 日本高清免费不卡视频 | 国产v亚洲v天堂 | 成人免费国产片 | 伦理大片在线观看 | 三级在线电影 | 色橹橹欧美在线观看视频高 | 欧美日韩国产一区三区 | 亚洲精品人体大胆 | 日韩精品一区二区三区四区蜜桃 | 日本不卡高清在线 | 国产超级在线视频观看 | 国产天堂在线丝袜一区 | 美女爽到尿喷出来 | 欧美丝袜自拍制服另类 | 精品国产一区二区三区四不卡在线 | 国产精品一区二区精品视频导航 | 欧美激情区二区一区三 | 91精品全国免费观看青青 | 亚洲精品乱码电影在线观看 | 白丝袜美 | 欧美女同小视频在线网站 | 欧美日韩三区 | 成人精品国产区在线观看 | 国产亚洲人成 | 7799天天综合| 排行榜电视剧全集手机免 | 综合网在线 | 国产suv精| 中文字幕制 | 欧美大片一 | 日本高清色本 | 91极品女神嫩 | 国产一级二级亚洲 | 欧美日韩国产高清一区二区三区 | 欧美激情一区二区三区成人 | 免费在线播放视频 | 日韩欧美在线视频一区二区 | 羞羞影院午夜男女爽爽影 | 婷婷亚洲久悠 | 国产亚洲精品资源在 | 国产观看免费在线久 | 就去吻亚洲精品国产欧美 | 亚洲人妖女同在线播放 | 精品国产免费 | 自产拍在线观看 | 亚洲欧美日韩另类丝袜一区 | 色国产精品妇射 | 99精品视频观看 | 精品三级影视在线免费观看 | 欧美视频在线 | 日韩高清在线有码中文字幕 | 韩国午夜理伦三级理论在线观看 | 国内精品自在自线视频香蕉 | 国产欧美日韩一区 | 国产日韩精品一区二区在线观看 | 免费人成黄页在线观看69 | 国产一级一片免费播放视频 | 精品乱码一区二区三四区视频 | 在线观看成人影院 | 免费看日产一区二区三区 | 破了亲妺妺的处免费视频国产 | 夜爽夜夜网 | 添国产97 | 亚洲人成伊人 | 成人一区| 日韩高清在线观看不卡一区二区 | 亚洲韩国日本 | 国产福利小电影视福利在线 | 国产一区二区三区免费看视频 | 国产在线精 | 97视频精品全国免费观看 | 91视频完整版高清 | 天堂a√ | 国产又粗又爽视频 | 日韩一区二区三区免费精品 | 国产一级一片免费播放视频 | 免费一级欧美大片在 | 91国内揄拍国内精品对白 | 国产日韩欧美亚洲 | 老女肥女熟国产在线视频网址 | 亚洲一区二区三区中文字幕在线 | 中文字幕卡通动漫精品首页 | 日本护士喷水 | 亚洲欧美国 | 精品免费看国产一区二区 | 亚洲国产精品无 | 国产女人在线观看 | 亚洲人成网址在线观看 | 欧美日韩国产精品自在线亚洲精品 | 亚洲国产欧美国产综合一区 | 99一区二区三区国产热视频在线 | 欧美日本韩国一 | 国产精品精华液网站 | 亚洲欧洲国产日产综合综合 | 中文在线资源天堂www | 欧美日韩国产成 | 国产乱码精品一区二区三 | 好看的韩国电影 | 国产视频综| 国产高清在线a视频 | 亚洲一级 | 91国内精品在线 | 欧美丰满大 | 免费电影推荐 | 精品午夜国产福 | 国精产品一区二区三区四区糖心 | 国产一级做a爱免费观看 | 欧美一级欧美三级在线观看 | 亚洲成aⅴ人在线观看 | 在线精品国精品国产尤物 | 亚洲呦女专区 | 亚洲狠狠 | 日本一夲道dvd在线 在线观看国产一线天木耳奈奈 | 经典国产乱子伦精品视频 | 人成午夜视频在线观看 | 日本高清中文字幕高清在线 | 亚洲人ⅴsaⅴ国产精品 | 中文字幕日韩经典 | 亚洲日韩成人精品不卡在线 | 国产日韩一区在线精品 | 欧美网址在线观看 | 欧美一区二区成人精品视频 | 美女被肏翻白眼视频在线观看 | 亚洲欧美综合精品成人导航 | 大地资源网最新在线播放 | 亚洲国产精品综合色在线 | 国产系列欧美系列每日更新 | 欧美一区二区三区免费播放 | 在线免费观看国产 | 亚洲欧美自拍视频 | 精品午夜福利在线视在亚洲 | 男女午夜爽爽大片免费 | 国产91精品在线观看导航 | 亚洲色偷偷偷鲁综合 | 欧美日韩精品一区二区在线观看 | 国产成a人亚洲精品无 | 亚洲天堂一区二区 | 国产永久精品91在 | 免费一级特黄特色大片 | 国产专区一区在线观看 | 水蜜桃www | 国产盗摄电影区9876色 | 国产欧美亚洲精品综合在线 | 午夜最污视| 亚洲福利国产精品17p | 国产欧美日韩一区 | 亚洲一级特黄大片在线播放 | 亚洲2025国| 国产爱情岛在线观看视频 | 亚洲精品理论电影在线观看 | 潘金莲与西门庆床戏在线 | 91精品区| 亚洲国产一区二区在线观看 | 亚洲一区二区三区 | 桃花在线观看视频播放 | αv在线视频免费观看男人 国产精品1234 | 视频在线观看一区 | 2025中文字幕在线观看 | 日本三级全黄三级a | 亚洲国产欧美日韩一区二区在线 | 国产性夜夜春夜夜爽30 | 99在线观看免费 | 亚洲欧美日韩高清在线电影 | 中文字幕在线不卡精品视频99 | 日韩欧美精品一区二区三区在线 | 欧美日韩中文 | 91精选国产大片 | 免费国产亚洲精品在线视频 | 国内精品自在自线视频在线观 | 精品免费囯产一区二区三区四 | 日韩a无v码在线播放免费 | 国产亚洲一区区二 | 免费国产91欧美va一区二区 | 国产96在线 | 国产精品亚洲片夜色在线 | 亚洲亚洲人成综合网络 | 飘雪影院手机免 | 日日日涩涩 | 天堂mv在线mv免费mv香蕉 | 三级网址 | 射精专区一区二区朝鲜 | 天堂v亚洲国产ⅴ第一次 | 日韩精品一区二区三区四区蜜桃 | 日韩欧美在线观看视频 | 国产视频高清在线观看 | 又粗又紧又湿又爽a视频 | 国产欧美日韩精品在线观看 | 亚洲精品国产福利片 | 欧美自拍另类欧美综合图片区 | 高清免费国产传媒海量视频 | 羞羞影院午夜男女爽 | 日本午夜网站 | 国产主播一区二区三区在线观 | 日产成人高清视频 | 一级a看片免费视频 | 欧美a级大片 | 国产伦精品一区二区三区视频 | 97色伦色在线综合视频 | 日韩精品一区二区三区影院 | 免费国产污网站在线观看 | 日韩欧美性爱视频网站翘臀 | 国产精品日韩欧美一区二区三区 | 在线视频一区二区三区三区不卡 | 顶级欧美色妇xxxxx | 亚洲国产国语自产精品 | 91精品在线观看中文 | 在线亚洲欧美日韩每日更新 | 草草浮力影院 | 二区三区 | 中文字幕国产专区99 | 亚洲日韩中文字幕一区 | 国产精品第一页第一页 | 电影免费在线观看 | 秋霞电影在线观看 | 欧美综合激情网 | 成人精品 | 韩国理伦电影午夜三级 | 中文一区二区三 | 国产亚洲无 | 欧美精品免费一区 | 国产综合一区二区在线观看 | 中文字幕欧美日本亚洲 | 欧美日韩国产亚洲 | 亚洲手机在线人成网站 | 西瓜视频国产 | 国产精品一区99 | 在线亚洲欧美日韩每日更新 | 日韩欧美一区二区在线精品 | 欧美亚洲精 | 国产在线观看中文字幕 | 国产综合精品五月天喷水 | 天美麻花 | 愉拍自拍另类高清 | 五月丁香激激情亚洲综合 | 精品国产一区二区在线观看 | 国产一级 | 中文字幕在线观看日本 | 在线午夜看片福利深夜导航 | 大地影视mv高清视频在线观看 | 国产精品va在线 | 日产成人高清视频 | 国产va免 | 国产思思精品视频 | 一女被多男玩喷潮视频免费看 | 男男做肉爱视频在线观看 | 国产啪精品视频网站免费尤物 | 超清乱人| 国内精品自在自线视频在线观 | 国产全部视频在线播放 | 国产精品美女视视频 | 日韩大片高清播放器 | 亚洲国产一区二区三区a毛 国产美女淫秽一区二区三区 | 9亚洲色| 在线观看人成视频免费不卡 | 日韩精品在线看 | 伊人影视网 | 免费国产自线拍 | 日本黄一级日本黄二级 | 国产视频在线一二区精品分类 | 欧美日韩aa一级视频 | 福利乱伦视频 | 午夜性影院爽爽爽爽爽爽 | 欧美18videosex性极品 | 国产精品亚洲一区二区在线观看 | 一区二区日韩激情综合网 | 国产丁香婷婷在线亚洲视频 | 产区和二线产区区别 | 国产精品ⅴa在线观看 | 亚洲人人夜夜 | 亚洲欧美中文精品激情在线 | 九一影视 | 亚洲国产精品不卡高清在 | 色琪琪原网站亚洲香蕉 | 日本中文字幕在线视频一区 | 182tv午夜福 国产剧情对白刺激在线 | 精品三级乱伦免费 | 国产亚洲sss在线播放 | 亚洲第一区欧美日韩 | 欧美一级日| 日韩国产私拍在线观看 | 国产福利 | 中日欧美精品在线播放 | 日韩欧美一区二区三区视频 | 亚洲欧美v国产 | 免费动漫成本人视频网站 | 日韩一区二区免费视频 | 99国产免线观看九 | 亚洲激情午夜视频 | 日本一区视频在线播放 | 国产操操| 亚洲欧美国产国产综合一区 | 国产亚洲久一区二区 | ⅴ一区区三区 | 91福利国| 国产精品香港三级国产 | 日韩精品福利片午夜免费观着 | 成年男人午夜片免费观看 | 日本欧美 | 精品欧美一区二 | 国产精品色三级在线观看 | 国产爽片大全免费在线观看 | 欧美日韩一区二区不卡三区 | 一级特黄aa大片欧美 | 亚洲自拍偷拍精品第二页 | 丰满岳乱妇一区 | 亚洲欧洲专线 | 国产一区二区三区免费看视频 | 欧美日韩一道在线 | 亚洲欧美日本一区二区三区 | 韩日国产精品一区二区三区 | 日韩中文字幕精品视频在线 | 国语对白刺激精品视频 | 国产色系视频在线观看免费 | 国产一区二区三区四区激情 | 国产男女乱婬真视频免 | 一二三四在线观看免费中文吗中文 | 91视频直播 | а√天堂资源官网在线资源 | 日本免费一区高清观看 | 欧美精品黄页在 | 又粗又黄又猛又爽大片免费 | 国产sm重味一区二区三区 | 日韩精品高清在线亚洲天堂 | 国产日本韩国 | 午夜福利一区二区电影 | 国产92刮伦脏话对 | 色橹橹欧美在线观看视频高清 | 中文字幕婷婷在 | 亚洲日本道1区2区3区不卡 | 99精品视频观看 | 亚洲日韩精品国产一区二区三区 | 国产欧美一区二区精品性色 | 亚洲精品第一国产综合境 | 久热国产精品视频一区二区三区 | 1024手机看片国产日韩欧美 | 手机看片日韩1024 | 韩国美女直播福利一区二区 | 最新日本一道免费一 | 制服丝袜中文字幕在线 | 日本免费一区高清观看 | 日本三级在线播放线观看视频 | 区二区三区新线路 | 48国产吹潮在线观看 | 中文字幕第1页精品一区 | 国产高清美女主播在线观看 | 国产女人喷潮免费视频 | 欧美在线视频一区 | 2025年最新中文字幕 | 爽国产片精品 | 91秒拍国产福利一区 | 亚洲国产中文字幕 | 国产一区二区精品尤物 | 国产欧美日产中文一区 | 国产对白普通话视 | 日韩欧美中文字幕在线视频 | 日本三级国产在线 | 日本中文字幕人成中文字幕 | 国产在线国偷精品产拍 | 中文在线а天堂中文在线新版 | 免费人成大片在线播放 | 天天综合7799精品影视 | 欧美一区色 | 亚洲欧美日韩中文国产不卡 | 国产99视频精品免费专区 | 国产精品成人 | 经典大片电影免费在线观看 | 国产精品h片在 | 国产亚洲精在线看 | 91夫妻小视 | 日本岛国在线观看网址 | 欧美日韩国产精品自在线亚洲精品 | 男人tv天堂精品一区二区 | 国产91精品在线观看导航 | 色依依亚洲一区在线观看 | 91午夜在线免费观看小视频 | 国产性夜夜春夜夜爽30 | 国产精品丝袜黑色高跟鞋 | 欧洲女人牲| 国产精品直 | 变态拳头交视频一区二区 | 國產精品va | 亚洲制服中文字幕一区二区 | 欧美日韩国产无线码无毒 | 日韩在线观看视频网站 | 国产一区二区三区视频精品 | 国产精品专区第二 | 亚洲人成伊人成综 | 国产高清日本综合 | a级全黄试看30分钟国产 | 国产男女爽爽爽爽爽爽爽爽 | 国产一级精品在线观看 | 欧美日韩一区二区成人午夜电影网 | 综合在线| 999zyz玖玖 | 国产播放隔着超 | 精品欧美日韩一区二区三区 | 青草青在线 | 国产一在线精品一区在线观看 | 中文有码国产精品 | 亚洲国产精品不卡高清在 | 国产亚洲日韩在线播放不卡 | 欧美国产日韩1区俺去了 | 欧美又大粗又爽又黄大片视频 | 国产又粗又硬又大爽黄老大爷视频 | 亚洲国产综合精品中文字幕 | 免费?∨中文高清乱 | 在线观看亚洲国产手机精品 | 天堂а√在线地址8中文种子 | 午夜伦理电影网 | 国产乱码精品一区二区三区四川人 | 亚洲精品男女视频在线 | 免费人成网站在线观看欧美 | 手机在线一区二 | 国产系列丝袜熟女精品网站 | 国产精品一区二区公司 | 国产精品一区二区三区四区五区 | 2025亚洲欧美日韩在线观看 | 国内精品尹人香蕉综合在线观看 | 三级精品在线观看自拍 | 无玛专区 | 又硬又粗又大一区二区三区视频 | 亚洲狠狠婷 | 欧美亚日韩一二三四 | 涩涩国产精 | 99国产视频有精彩视频 | 亚洲aⅴ男人的 | 大伊香蕉精品一区视频在线 | 亚洲国产经典国产精品观看免费 | 在线观看的资 | 好吊色欧美一区二区三区视频 | 国产亚洲一区二区三区日本 | 亚洲无线一二三四区手机 | 热门电影电视剧短剧免费在线观看 | 国产乱码精品一区二区三 | 日韩欧美aⅴ综合网站发布 大香伊蕉在人线国产最新75 | 日本x片成年免费观看视频 性开放的欧美大片黑白配 欧美激合综图片区小说 | 丰满岳乱妇一区二区三区 | 在线天堂免费中文字幕 | 亚洲精品国产福利 | 一区二区视频在线观看入口 | 国产不卡在线观看视频 | 国产一级a毛做免费视频 | 亚洲激情视频图片 | 高清在线观看视频 | 国产精品v欧美精品v日韩 | 性国产se╳ | 免费无人区一码二码乱码区别在哪 | 免费人成视频在线播放视频 | 亚洲老热| 国产中文成人精品小说 | 欧美手机手机在线视频一区 | 国产精品露脸国语对白 | 在线日本高清不卡免费v | 日韩精品一区二区三区中文在线 | 亚洲福利在线看 | 国产精品巨作无遮拦 | 97精产国品一二三产区 | 2025年最新中文字幕 | 国产精选污视频在线观看 | 欧美日韩午 | 中文有码 | 神马影院午夜电影 | 麻花传媒 | 国产欧美日韩视频专区在线观看 | 欧美三级在线观看国产 | 国产极品视频 | 欧美日韩亚洲国产一 | 欧美日韩国产精品二区在线观看 | 超刺激高跟鞋脚交视频在线 | 欧美精品国产一区二区三区 | 中文字幕夫妇交换乱叫 | 国产日产亚洲欧美综合另类 | 国产性色的 | 亚洲亚洲人成网站在线观看 | 手机看片日韩1024 | 亚洲精品区午夜亚洲精品区 | 制服丝袜国产精 | 亚洲天堂一区二区 | 中日韩精品视频在线观看 | 国产精品黄大片在线播放 | 美国十次狠狠 | 男女性杂交内 | 青青国产揄拍在线观看 | 免费无毒片在线观看 | 亚洲激精日韩激精欧美潮精品 | 永久免费精品性爱网站 | 国产91精品系 | 亚洲国产精品国自产拍a∨ 麻花影视在线看电视剧软件 | 国产精品一区二 | 免费看国产精品3a黄的视频 | 91精品啪国产在线观看 | 国产又粗又猛 | 久爱www人成免费网站 | 依人成人 | 中文字幕在线播放 | 日韩美女视频一区 | 好看的韩国电影 | 九九99亚洲精品 | 999zyz玖玖资源 | 羞羞影院午夜男女爽爽视频 | 欧美特黄一免在线观看 | 国产在线91下载 | 欧美亚洲综合成人a∨在线 亚洲国产中文字幕在线观看 | 老司机永久免费视频网站 | 欧美日韩一本到手机视频观看一区 | 国产ol丝袜高跟在线观看不卡 | 国产亚洲免费在线观看 | 国产微拍精品一区二区 | 把伸进女人的www下载 | 国产voyeur精品偷窥222 | 亚洲精品在线观看视频 | 一本a道v久遛 | 在线观看免费视频网站a站 色夜影院 | 人免费观看在线视频www | 亚洲欧美日韩综合aⅴ | 国产最新一区二区 | 成年人24小时在线免费观看视频 | 精品一区二区中文字幕 | 亚洲精品美女偷拍一区二 | 中亚洲文日韩一区 | 日韩高清在线日韩视一区 | 欧美一级欧美一级高清 | 免费软件下载网站 | 欧美区一区 | 91精品国产亚一区二区三区 | 三年在线观看免费大全 | 五月激情综合网 | 国产日本精品视频 | 国产国拍 | 日本精品电影一区二区三区 | 国产三級精品专区 | 精品国产欧美一区二区三区成人 | 欧美xxxx黑人又粗又长精品 | 在线观看视频欧美 | 国产精品自产拍在线 | 探花视频在线 | 国产精品视频一区二区噜噜 | 亚洲欧美一区二区三区电影 | 草草线禁成18年在线视频 | 最新韩剧推荐 | 国产又猛又黄 | 免费国产一级a | 欧美视频日韩视 | 在线观看国产视频黄 | 国产凹凸在线一区二区 | 国产精品猎奇另类视频 | 欧美精品综合一区二区三区 | 国产精品成人va在线观看 | 91极品蜜桃 | 国产精品宾馆在线精品酒店↗ | 亚洲日本精品国产一区vr | 国产超薄肉丝袜在线播放 | 亚欧免费大片在线观看 | 无人视频免费观看免费视频 | 局长含着| 精品午夜免费高清视频 | 爱视频在线观看 | 日韩欧美第一页 | 亚洲最新国产一区二区三区 | 国产自产视 | 国产精品高清在线观看93 | 24小时日本视频在线观看 | 色偷偷中文字 | 国产精品一区福利在线观看 | 欧洲不卡二卡三卡四卡免费 | 日韩一区二区三区四区不卡 | 国产伦一区二区三 | 亚洲日韩在线中文字幕综合 | 日本精品电影一区二区三区 | www.亚洲最大夜色伊人 | 亚洲欧美日韩另类丝袜一区 | 欧美草逼网站 | 亚洲精品区m | 人善交vi | 欧美精品国产日韩综合在线 | 欧美日韩影视在线 | 免费视频精品一区 | 国产精品亚洲自在线播放页码 | 国产性夜夜春夜夜 | 在线综合亚洲欧洲综合网站 | 亚洲欧美日本a∨在线观看 一区发布 | 成人热色戒 | 97人人揉人人捏人人添电影 | 成人a大片高 | 美腿丝袜亚洲综合在线视频 | 日本国产中文字幕 | 性xxxx18免 | 亚洲国产区中文在线观看不卡 | 日韩精品视频在线 | 亚洲日本aⅴ片在线观看香蕉 | 手机播放 | 精品日本亚洲专区 | 人国产在线观看不卡片 | 一区二区三区高清视频国产女人 | 91视频直播| 成人国产99视频在线观看 | 欧美一区二区三区婷婷月色 | 亚洲国产一区二区在线免费 | 国产午夜在线观看免费 | 亚洲日韩国产欧美一区二区三区 | 永久入口| 91精品国产免费青青碰在线 | 国产在线一区二区三区在线 | 欧美伦费免费全部午夜最新 | 亚洲精品国偷拍自产 | 一区视频 | 好看的手机电影 | 欧美一级大黄特黄 | 一二三四在线观看免费中文吗中文 | 勃起又长又黑又粗毛又多 | 国产精品一区二区国产馆蜜桃 | 成人aⅴ综合视频国产 | 青青草97国产精品免费观看 |