SqlPackage 發佈作業會累加更新目標資料庫的結構描述,使其符合來源資料庫的結構。 發行部署套件時,若其中包含所有資料表或資料表子集的使用者資料,則除了結構描述以外,也會更新資料表資料。 資料部署會覆寫目標資料庫之現有資料表中的結構描述和資料。 對於未包括在部署套件的資料表,資料部署將不會變更目標資料庫中的現有結構描述或資料。 當已驗證的使用者具有 create database 權限時,發佈動作可以建立新的資料庫。 在現有資料庫上,發佈動作的必要權限是 db_owner。
注意
雖然 Microsoft Entra ID 是 Azure Active Directory(Azure AD)的新名稱,但為了防止破壞現有的環境,Azure AD 仍會保留在某些硬式編碼元素中,例如 UI 字段、連線提供者、錯誤碼和 Cmdlet。 在本文中,這兩個名稱是可互換的。
命令列語法
SqlPackage 會使用命令列上指定的參數、屬性和 SQLCMD 變數來起始指定的動作。
SqlPackage /Action:Publish {parameters} {properties} {sqlcmd variables}
注意
當擷取含有 SQL 驗證使用者認證的資料庫時,該密碼會取代為具有適當複雜性的不同密碼。 假設在發佈 Dacpac 之後,會變更使用者密碼。
範例
# example publish from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example publish using short form parameter names, skips schema validation
SqlPackage /a:Publish /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
/tp:"{your_password}" /sf:"C:\AdventureWorksLT.dacpac" /p:VerifyDeployment=False
# example publish using Microsoft Entra managed identity
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example publish connecting using Microsoft Entra username and password
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"
# example publish connecting using Microsoft Entra universal authentication
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication:True \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example publish with 2 SQLCMD variables
# as seen in a post deployment script for user passwords
# https://github.com/Azure-Samples/app-sql-devops-demo-project/blob/main/sql/wwi-dw-ssdt/PostDeploymentScripts/AddUsers.sql
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" \
/v:ETLUserPassword="asecurestringaddedhere" /v:AppUserPassword="asecurestringaddedhere"
# example publish connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token
SqlPackage /at:$AccessToken /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
/TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
Publish 動作的參數
| 參數 | 簡短形式 | 價值 | 描述 |
|---|---|---|---|
| /AccessToken: | /在: | {string} | 指定在連線至目標資料庫時所使用的權杖型驗證存取權杖。 |
| /動作: | /一個: | 發佈 | 指定要執行的動作。 |
| /AzureCloudConfig: | /acc: | {string} | 指定用於連線至 Microsoft Entra ID 的自訂端點,格式為:AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}"。 |
| /AzureKeyVaultAuthMethod: | /akv: | {互動|客戶識別碼秘密} | 指定如果發佈作業包含對加密資料表/資料行的修改,則要使用哪種驗證方法來存取 Azure KeyVault。 |
| /ClientId: | /cid: | {string} | 指定必要時驗證 Azure Key Vault 所要使用的用戶端識別碼 |
| /DeployReportPath: | /drp: | {string} | 指定選擇性檔案路徑來輸出部署報表 XML 檔案。 |
| /DeployScriptPath: | /dsp: | {string} | 指定選擇性檔案路徑來輸出部署指令碼。 對於 Azure 部署,若有 Transact-SQL 命令要建立或修改 master 資料庫,將會對指令碼寫入相同的路徑,但會使用 "Filename_Master.sql" 做為輸出檔案名稱。 |
| /診斷: | /d: | {真|假} | 指定診斷記錄是否輸出到主控台。 預設為 False。 |
| /DiagnosticsFile: | /df: | {string} | 指定要儲存診斷記錄的檔案。 |
| /DiagnosticsLevel: | /dl | {無|關閉|重大|錯誤|警告|資訊|詳細} | 指定已篩選診斷檔案的追蹤訊息層級 |
| /DiagnosticsPackageFile: | /dpf | {string} | 指定要儲存診斷套件的檔案。 |
| /MaxParallelism: | /mp: | {int} | 指定針對資料庫執行之並行作業的平行處理原則的程度。 預設值為 8。 |
| /ModelFilePath: | /mfp: | {string} | 指定要覆寫來源檔案中 model.xml 的檔案路徑。 使用此設定可能會導致部署失敗和/或非預期的資料遺失。 此設定僅用於針對發佈、匯入或指令碼產生問題進行疑難排解時。 |
| /OverwriteFiles: | /之: | {真|假} | 指定 SqlPackage 是否應該覆寫現有的檔案。 指定 False 會導致 SqlPackage 在遇到現有的檔案時中止動作。 預設值是 True。 |
| /輪廓: | /公關: | {string} | 指定 DAC 發行設定檔的檔案路徑。 設定檔會定義產生輸出時要使用之屬性及變數的集合。 |
| /屬性: | /p: | {PropertyName}={Value} | 為特定動作的屬性指定成對的名稱和數值:{PropertyName}={Value}。 |
| /靜音: | /q: | {真|假} | 指定是否隱藏詳細的意見反應。 預設為 False。 |
| /ReferencePaths: | /rp: | {PropertyName}={Value} | 指定要用於搜尋 .dacpac 參考的其他目錄。 |
| /秘密: | /secr: | {string} | 指定必要時驗證 Azure Key Vault 所要使用的用戶端密碼 |
| /SourceFile: | /sf: | {string} | 指定要當作動作來源使用的來源檔案,而非本機儲存體中的資料庫。 如果使用了此參數,其他來源參數都應該無效。 |
| /SourceConnectionString: | /南海: | {string} | 指定對來源資料庫有效的 SQL Server/Azure 連接字串。 如果指定了此參數,就應該以獨佔方式將其用於所有其他來源參數。 |
| /SourceDatabaseName: | /sdn: | {string} | 定義來源資料庫的名稱。 |
| /SourceEncryptConnection: | 每秒: | {可選|必須|嚴格|是|否} | 指定 SQL 加密是否應該用於來源資料庫連接。 預設值是 True。 |
| /SourceHostNameInCertificate: | /shnic: | {string} | 指定使用 TLS 加密通訊層時,用來驗證來源 SQL Server TLS/SSL 憑證的值。 |
| /SourcePassword: | /sp: | {string} | 若為 SQL Server 驗證案例,則定義要用來存取來源資料庫的密碼。 |
| /SourceServerName: | /ssn: | {string} | 定義裝載來源資料庫的伺服器名稱。 |
| /SourceTimeout: | /st: | {int} | 設定建立來源資料庫連線的逾時時間(以秒為單位)。 |
| /SourceTrustServerCertificate: | /stsc: | {真|假} | 指定是否要使用 TLS 來加密來源資料庫連線並且略過驗證信任的憑證鏈結。 預設值為 False。 |
| /SourceUser: | /蘇: | {string} | 若為 SQL Server 驗證案例,則定義要用來存取來源資料庫的 SQL Server 使用者。 |
| /TargetConnectionString: | /tcs: | {string} | 指定對目標資料庫有效的 SQL Server/Azure 連接字串。 如果指定此參數,就應該以獨佔方式將它用於所有其他目標參數。 |
| /TargetDatabaseName: | /tdn: | {string} | 指定要覆寫的資料庫名稱,此名稱是 SqlPackage 操作的目標。 |
| /TargetEncryptConnection: | /tec: | {可選|必須|嚴格|是|否} | 指定 SQL 加密是否應該用於目標資料庫連線。 預設值是 True。 |
| /TargetHostNameInCertificate: | /民族: | {string} | 指定使用 TLS 加密通訊層時,用來驗證目標 SQL Server TLS/SSL 憑證的值。 |
| /TargetPassword: | /衛生紙: | {string} | 若為 SQL Server 驗證案例,則定義要用來存取目標資料庫的密碼。 |
| /TargetServerName: | /tsn: | {string} | 定義裝載目標資料庫的伺服器名稱。 |
| /TargetTimeout: | /tt: | {int} | 指定建立目標資料庫連線的逾時 (以秒為單位)。 針對 Microsoft Entra ID,此值建議大於或等於 30 秒。 |
| /TargetTrustServerCertificate: | /ttsc: | {真|假} | 指定是否要使用 TLS 來加密目標資料庫連線並略過驗證信任的憑證鏈結。 預設值為 False。 |
| /TargetUser: | /tu: | {string} | 若為 SQL Server 驗證案例,則定義要用以存取目標資料庫的 SQL Server 使用者。 |
| /TenantId: | /tid: | {string} | 代表 Microsoft Entra 租戶 ID 或網域名稱。 此選項是支援來賓或匯入的 Microsoft Entra 使用者以及 Microsoft 帳戶(如 outlook.com、hotmail.com 或 live.com)的必要條件。 假設已驗證使用者是此租用戶的原生使用者,則若省略此參數,即會使用 Microsoft Entra ID 的預設租用戶 ID。 不過,在此情況下,不支援任何來賓或匯入的使用者及/或在此 Microsoft Entra ID 中託管的 Microsoft 帳戶,且作業會失敗。 如需詳細資訊,請參閱通用驗證搭配 SQL Database 和 Azure Synapse Analytics (適用於 MFA 的 SSMS 支援)。 |
| /ThreadMaxStackSize: | /tmss: | {int} | 指定執行 SqlPackage 動作之執行緒的大小上限 (以 MB 為單位)。 只有在剖析非常大的 Transact-SQL 陳述式時發生堆疊溢位例外狀況,才應該使用此選項。 |
| /UniversalAuthentication: | /ua: | {真|假} | 指定是否應該使用通用驗證。 設定為 True 時,即會啟用支援 MFA 的互動式驗證通訊協定。 此選項也可以用於不使用 MFA 的 Microsoft Entra 驗證,使用需要使用者輸入其使用者名稱和密碼或整合式驗證 (Windows 認證) 的互動式通訊協定。 當 /UniversalAuthentication 設定為 True 時,SourceConnectionString (/scs) 中不能指定任何 Microsoft Entra 驗證。 當 /UniversalAuthentication 設定為 False 時, SourceConnectionString (/scs) 中必須指定 Microsoft Entra 驗證。 如需 Active Directory 通用驗證的詳細資訊,請參閱 SQL Database 和 Azure Synapse Analytics 的通用驗證 (MFA 的 SSMS 支援)。 |
| /變數: | /v: | {PropertyName}={Value} | 指定動件特定變數的名稱/值對:{VariableName}={Value}。 DACPAC 檔案包含有效 SQLCMD 變數的清單。 如果未針對每一個變數提供值,則會產生錯誤。 |
Publish 動作的特定屬性
| 財產 | 價值 | 描述 |
|---|---|---|
| /p: | 附加部署貢獻者參數=(STRING) | 為部署參與者指定額外的部署參與者引數。 此屬性應該是以分號區隔的值清單。 |
| /p: | 其他部署貢獻者路徑=(STRING) | 指定載入其他部署參與者的路徑。 此屬性應該是以分號區隔的值清單。 |
| /p: | 額外部署貢獻者=(STRING) | 指定在部署 dacpac 時應該執行的額外部署參與者。 此屬性應該是以分號區隔的完整組建參與者名稱或識別碼清單。 |
| /p: | AllowDropBlockingAssemblies=(BOOLEAN 'False') | 這個屬性供 SQL CLR 部署用於將任何阻塞的組件,做為部署計劃的一部分予以卸除。 根據預設,如果必須卸除任何參考組件,則該封鎖/參考組件會封鎖組件更新。 |
| /p: | 允許外部語言路徑=(布林 'False') | 允許使用檔案路徑 (如有提供) 產生外部語言陳述式。 |
| /p: | 允許外部庫路徑=(BOOLEAN 'False') | 允許使用檔案路徑 (如有提供) 產生外部程式庫陳述式。 |
| /p: | AllowIncompatiblePlatform=(BOOLEAN 'False') | 指定儘管 SQL Server 平台不相容,是否仍要嘗試動作。 |
| /p: | AllowTableRecreation=(BOOLEAN '真') | 指定如果需要執行結構描述變更,是否允許在部署期間重新建立資料表。 重新建立資料表會在保留資料的同時重新組建資料表,但可能會對效能產生重大影響。 |
| /p: | AllowUnsafeRowLevelSecurityDataMovement=(BOOLEAN 'False') | 若此屬性設定為 true,請勿封鎖具有資料列層級安全性之資料表的資料動作。 預設值為 false。 |
| /p: | Azure共享存取簽名令牌=(字串) | Azure 共用存取簽章 (SAS) 權杖。 請參閱適用於 Azure Synapse Analytics 的 SqlPackage 和使用 Parquet 檔案中資料的 SqlPackage。 |
| /p: | AzureStorageBlobEndpoint=(STRING) | Azure Blob 儲存體端點,請參閱適用於 Azure Synapse Analytics 的 SqlPackage 和使用 Parquet 檔案中資料的 SqlPackage。 |
| /p: | AzureStorageContainer=(STRING) | Azure Blob 儲存體容器,請參閱適用於 Azure Synapse Analytics 的 SqlPackage 和使用 Parquet 檔案中資料的 SqlPackage。 |
| /p: | AzureStorageKey=(STRING) | Azure 儲存帳戶金鑰,請參閱適用於 Azure Synapse Analytics 的 SqlPackage 和使用 Parquet 檔案資料的 SqlPackage。 |
| /p: | AzureStorageRootPath=(STRING) | 容器內的儲存體根路徑。 如果沒有這個屬性,路徑會預設為 servername/databasename/timestamp/。 請參閱適用於 Azure Synapse Analytics 的 SqlPackage 和使用 Parquet 檔案中資料的 SqlPackage。 |
| /p: | BackupDatabaseBeforeChanges=(BOOLEAN 'False') | 在部署任何變更之前,先備份資料庫。 此屬性不適用於 Azure SQL Database。 |
| /p: | 可能資料遺失阻擋=(BOOLEAN 'True') | 指定若產生的結構描述變更可能導致資料遺失 (包括因為資料精確度降低或需要轉換作業的資料類型變更),作業將在結構描述驗證步驟期間終止。 不論目標資料庫是否包含資料,預設 (True) 值都會導致作業終止。 即使具有 False 值的 BlockOnPossibleDataLoss 在部署計劃執行期間,若目標上存在無法轉換為新資料行類型的資料,執行仍可能失敗。 |
| /p: | BlockWhenDriftDetected=(布林值 'True') | 指定是否封鎖對結構描述不再符合註冊或已取消註冊的資料庫進行更新。 |
| /p: | CommandTimeout=(INT32 '60') | 以秒為單位指定對 SQL Server 執行查詢時的命令逾時。 |
| /p: | CommentOutSetVarDeclarations=(布林值 「False」) | 指定在已產生的發行指令碼中是否應該將 SETVAR 變數的宣告加上註解。 如果您計畫在使用 SQLCMD.EXE 等工具進行發行時在命令列指定值,就可以選擇這種作法。 |
| /p: | CompareUsingTargetCollation=(BOOLEAN '假') | 這個設定表示資料庫的定序於部署期間的處理方式。如果目標資料庫的定序不符合來源所指定的定序,預設會更新目標資料庫的定序。 當設定這個選項時,則應該使用目標資料庫 (或伺服器) 的定序。 |
| /p: | CreateNewDatabase=(BOOLEAN 'False') | 指定在發佈到資料庫時,目標資料庫應被更新,還是應被刪除並重新建立。 |
| /p: | DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } '預設') | 定義 Azure SQL Database 的版本。 請參閱 Azure SQL Database 服務層級。 |
| /p: | DatabaseLockTimeout=(INT32 '60') | 指定對 SQLServer 執行查詢時的資料庫鎖定超時時間,以秒為單位。 使用 -1 表示永遠等候。 |
| /p: | DatabaseMaximumSize=(INT32 '0') | 定義 Azure SQL Database 的大小上限 (以 GB 表示)。 |
| /p: | DatabaseServiceObjective=(STRING) | 定義 Azure SQL Database 的效能等級,例如 "P0" 或 "S1"。 |
| /p: | DeployDatabaseInSingleUserMode=[BOOLEAN 'False'] | 若為 true,則資料庫會在設定為單一使用者模式後部署。 |
| /p: | DisableAndReenableDdlTriggers=(BOOLEAN 'True') | 指定是否在發行程序開始時停用資料定義語言 (DDL) 觸發程序,並在發行動作結束時重新啟用。 |
| /p: | DisableIndexesForDataPhase=(BOOLEAN 'True') | 將資料匯入 SQL Server 之前,請先停用索引。 |
| /p: | 禁用索引啟用並行處理=(BOOLEAN 'False') | 將資料匯入 SQL Server 時,於重建索引時不會使用平行處理原則。 |
| /p: | 結果為「DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'True')」,此項可能表示「不改變資料擷取物件,(布林值 '真')」之設定。 | 如果為 true,則不會改變異動資料擷取物件。 |
| /p: | 不要改變複製的物件=(BOOLEAN 'True') | 指定在驗證過程中是否確認已複寫的物件。 |
| /p: | DoNotDropDatabaseWorkloadGroups=(布林值 'False') | 如果設定為 false,部署期間,未在來源中定義的目標資料庫內的資料庫工作負載群組會被刪除。 |
| /p: | DoNotDropObjectType=(STRING) | 當 DropObjectsNotInSource 為 true 時不應捨棄的物件類型。 有效的物件類型名稱為 Aggregates(聚合)、ApplicationRoles(應用角色)、Assemblies(程序集)、AssemblyFiles(程序集文件)、AsymmetricKeys(非對稱金鑰)、BrokerPriorities(代理優先順序)、Certificates(證書)、ColumnEncryptionKeys(資料行加密金鑰)、ColumnMasterKeys(資料行主金鑰)、Contracts(合約)、DatabaseOptions(資料庫選項)、DatabaseRoles(資料庫角色)、DatabaseTriggers(資料庫觸發程序)、Defaults(預設值)、ExtendedProperties(擴充屬性)、ExternalDataSources(外部資料來源)、ExternalFileFormats(外部檔案格式)、ExternalTables(外部表格)、Filegroups(檔案群組)、Files(檔案)、FileTables(檔案表格)、FullTextCatalogs(全文目錄)、FullTextStoplists(全文停止清單)、MessageTypes(訊息類型)、PartitionFunctions(分割函數)、PartitionSchemes(分割配置)、Permissions(權限)、Queues(佇列)、RemoteServiceBindings(遠端服務繫結)、RoleMembership(角色成員資格)、Rules(規則)、ScalarValuedFunctions(標量值函數)、SearchPropertyLists(搜尋屬性清單)、SecurityPolicies(安全性政策)、Sequences(順序)、Services(服務)、Signatures(簽章)、StoredProcedures(儲存程序)、SymmetricKeys(對稱金鑰)、Synonyms(同義字)、Tables(表格)、TableValuedFunctions(表格值函數)、UserDefinedDataTypes(使用者定義資料類型)、UserDefinedTableTypes(使用者定義表格類型)、ClrUserDefinedTypes(CLR使用者定義類型)、Users(使用者)、Views(檢視)、XmlSchemaCollections(XML架構集合)、Audits(稽核)、Credentials(認證)、CryptographicProviders(加密提供者)、DatabaseAuditSpecifications(資料庫稽核規格)、DatabaseEncryptionKeys(資料庫加密金鑰)、DatabaseScopedCredentials(資料庫範圍認證)、Endpoints(端點)、ErrorMessages(錯誤訊息)、EventNotifications(事件通知)、EventSessions(事件會話)、LinkedServerLogins(連結伺服器登入)、LinkedServers(連結伺服器)、Logins(登入)、MasterKeys(母金鑰)、Routes(路由)、ServerAuditSpecifications(伺服器稽核規格)、ServerRoleMembership(伺服器角色成員資格)、ServerRoles(伺服器角色)、ServerTriggers(伺服器觸發程序)、ExternalStreams(外部流)、ExternalStreamingJobs(外部串流作業)、DatabaseWorkloadGroups(資料庫工作負荷群組)、WorkloadClassifiers(工作負荷分類器)、ExternalLibraries(外部程式庫)、ExternalLanguages(外部語言)。 可多次指定此屬性來表示多個選項。 |
| /p: | DoNotDropObjectTypes=(STRING) | 當 DropObjectsNotInSource 為 true 時不應捨棄的分號分隔物件類型清單。 有效的物件類型名稱為 Aggregates(聚合)、ApplicationRoles(應用角色)、Assemblies(程序集)、AssemblyFiles(程序集文件)、AsymmetricKeys(非對稱金鑰)、BrokerPriorities(代理優先順序)、Certificates(證書)、ColumnEncryptionKeys(資料行加密金鑰)、ColumnMasterKeys(資料行主金鑰)、Contracts(合約)、DatabaseOptions(資料庫選項)、DatabaseRoles(資料庫角色)、DatabaseTriggers(資料庫觸發程序)、Defaults(預設值)、ExtendedProperties(擴充屬性)、ExternalDataSources(外部資料來源)、ExternalFileFormats(外部檔案格式)、ExternalTables(外部表格)、Filegroups(檔案群組)、Files(檔案)、FileTables(檔案表格)、FullTextCatalogs(全文目錄)、FullTextStoplists(全文停止清單)、MessageTypes(訊息類型)、PartitionFunctions(分割函數)、PartitionSchemes(分割配置)、Permissions(權限)、Queues(佇列)、RemoteServiceBindings(遠端服務繫結)、RoleMembership(角色成員資格)、Rules(規則)、ScalarValuedFunctions(標量值函數)、SearchPropertyLists(搜尋屬性清單)、SecurityPolicies(安全性政策)、Sequences(順序)、Services(服務)、Signatures(簽章)、StoredProcedures(儲存程序)、SymmetricKeys(對稱金鑰)、Synonyms(同義字)、Tables(表格)、TableValuedFunctions(表格值函數)、UserDefinedDataTypes(使用者定義資料類型)、UserDefinedTableTypes(使用者定義表格類型)、ClrUserDefinedTypes(CLR使用者定義類型)、Users(使用者)、Views(檢視)、XmlSchemaCollections(XML架構集合)、Audits(稽核)、Credentials(認證)、CryptographicProviders(加密提供者)、DatabaseAuditSpecifications(資料庫稽核規格)、DatabaseEncryptionKeys(資料庫加密金鑰)、DatabaseScopedCredentials(資料庫範圍認證)、Endpoints(端點)、ErrorMessages(錯誤訊息)、EventNotifications(事件通知)、EventSessions(事件會話)、LinkedServerLogins(連結伺服器登入)、LinkedServers(連結伺服器)、Logins(登入)、MasterKeys(母金鑰)、Routes(路由)、ServerAuditSpecifications(伺服器稽核規格)、ServerRoleMembership(伺服器角色成員資格)、ServerRoles(伺服器角色)、ServerTriggers(伺服器觸發程序)、ExternalStreams(外部流)、ExternalStreamingJobs(外部串流作業)、DatabaseWorkloadGroups(資料庫工作負荷群組)、WorkloadClassifiers(工作負荷分類器)、ExternalLibraries(外部程式庫)、ExternalLanguages(外部語言)。 |
| /p: | DoNotDropWorkloadClassifiers=(BOOLEAN 'False') | 若為 false,未在來源中定義之目標資料庫內的 WorkloadClassifiers,在部署期間皆會予以捨棄。 |
| /p: | DoNotEvaluateSqlCmdVariables=(BOOLEAN 'True') | 指定是否不要以值取代 SQLCMD 變數 |
| /p: | 刪除源中不存在的約束=(BOOLEAN 'True') | 指定當發佈到資料庫時,是否要從目標資料庫中移除不存在於資料庫快照 (.dacpac) 檔案中的限制條件。 |
| /p: | 在來源中不存在的Dml觸發器刪除=(BOOLEAN 'True') | 指定是否要在發行至資料庫時,從目標資料庫中卸除在資料庫快照 (.dacpac) 檔案中不存在的 DML 觸發程序。 |
| /p: | DropExtendedPropertiesNotInSource=(布林值 'True') | 指定當您發行至資料庫時,是否要從目標資料庫中卸除不存在資料庫快照集 (.dacpac) 檔案中的擴充屬性。 |
| /p: | DropIndexesNotInSource = (BOOLEAN 'True') | 指定當您發行到資料庫時,是否要從目標資料庫中移除不存在於資料庫快照 (.dacpac) 檔案中的索引。 |
| /p: | DropObjectsNotInSource=(BOOLEAN 'False') | 指定當您發行至資料庫時,是否要從目標資料庫中刪除在資料庫快照檔 (.dacpac) 中不存在的物件。 這個值的優先順序高於 DropExtendedProperties。 |
| /p: | DropPermissionsNotInSource=(BOOLEAN 'False') | 指定當您發佈更新到資料庫時,是否應從目標資料庫中移除在資料庫快照 (.dacpac) 檔案中不存在的權限。 |
| /p: | 不在來源中的角色成員是否移除=(BOOLEAN 'False') | 指定當您發行更新至資料庫時,是否要將目標資料庫中未在資料庫快照集 (.dacpac) 檔案中定義的角色成員移除。 |
| /p: | 不在來源中的捨棄統計數據=(BOOLEAN 'True') | 指定您在發行至資料庫時,是否會從目標資料庫移除不存在於資料庫快照 (.dacpac) 檔案中的統計資料。 |
| /p: | EnclaveAttestationProtocol=(STRING) | 指定要搭配內建保護區型 Always Encrypted 使用的驗證通訊協定。 |
| /p: | EnclaveAttestationUrl=(STRING) | 指定要搭配記憶體保護區型 Always Encrypted 使用的記憶體保護區證明 URL (證明服務端點)。 |
| /p: | 排除物件類型=(STRING) | 部署期間應該忽略的物件類型。 有效的物件類型名稱為 Aggregates(聚合)、ApplicationRoles(應用角色)、Assemblies(程序集)、AssemblyFiles(程序集文件)、AsymmetricKeys(非對稱金鑰)、BrokerPriorities(代理優先順序)、Certificates(證書)、ColumnEncryptionKeys(資料行加密金鑰)、ColumnMasterKeys(資料行主金鑰)、Contracts(合約)、DatabaseOptions(資料庫選項)、DatabaseRoles(資料庫角色)、DatabaseTriggers(資料庫觸發程序)、Defaults(預設值)、ExtendedProperties(擴充屬性)、ExternalDataSources(外部資料來源)、ExternalFileFormats(外部檔案格式)、ExternalTables(外部表格)、Filegroups(檔案群組)、Files(檔案)、FileTables(檔案表格)、FullTextCatalogs(全文目錄)、FullTextStoplists(全文停止清單)、MessageTypes(訊息類型)、PartitionFunctions(分割函數)、PartitionSchemes(分割配置)、Permissions(權限)、Queues(佇列)、RemoteServiceBindings(遠端服務繫結)、RoleMembership(角色成員資格)、Rules(規則)、ScalarValuedFunctions(標量值函數)、SearchPropertyLists(搜尋屬性清單)、SecurityPolicies(安全性政策)、Sequences(順序)、Services(服務)、Signatures(簽章)、StoredProcedures(儲存程序)、SymmetricKeys(對稱金鑰)、Synonyms(同義字)、Tables(表格)、TableValuedFunctions(表格值函數)、UserDefinedDataTypes(使用者定義資料類型)、UserDefinedTableTypes(使用者定義表格類型)、ClrUserDefinedTypes(CLR使用者定義類型)、Users(使用者)、Views(檢視)、XmlSchemaCollections(XML架構集合)、Audits(稽核)、Credentials(認證)、CryptographicProviders(加密提供者)、DatabaseAuditSpecifications(資料庫稽核規格)、DatabaseEncryptionKeys(資料庫加密金鑰)、DatabaseScopedCredentials(資料庫範圍認證)、Endpoints(端點)、ErrorMessages(錯誤訊息)、EventNotifications(事件通知)、EventSessions(事件會話)、LinkedServerLogins(連結伺服器登入)、LinkedServers(連結伺服器)、Logins(登入)、MasterKeys(母金鑰)、Routes(路由)、ServerAuditSpecifications(伺服器稽核規格)、ServerRoleMembership(伺服器角色成員資格)、ServerRoles(伺服器角色)、ServerTriggers(伺服器觸發程序)、ExternalStreams(外部流)、ExternalStreamingJobs(外部串流作業)、DatabaseWorkloadGroups(資料庫工作負荷群組)、WorkloadClassifiers(工作負荷分類器)、ExternalLibraries(外部程式庫)、ExternalLanguages(外部語言)。 可多次指定此屬性來表示多個選項。 |
| /p: | 排除物件類型=(字串) | 以分號區隔的物件類型清單,列出部署期間應該忽略的物件類型。 有效的物件類型名稱為 Aggregates(聚合)、ApplicationRoles(應用角色)、Assemblies(程序集)、AssemblyFiles(程序集文件)、AsymmetricKeys(非對稱金鑰)、BrokerPriorities(代理優先順序)、Certificates(證書)、ColumnEncryptionKeys(資料行加密金鑰)、ColumnMasterKeys(資料行主金鑰)、Contracts(合約)、DatabaseOptions(資料庫選項)、DatabaseRoles(資料庫角色)、DatabaseTriggers(資料庫觸發程序)、Defaults(預設值)、ExtendedProperties(擴充屬性)、ExternalDataSources(外部資料來源)、ExternalFileFormats(外部檔案格式)、ExternalTables(外部表格)、Filegroups(檔案群組)、Files(檔案)、FileTables(檔案表格)、FullTextCatalogs(全文目錄)、FullTextStoplists(全文停止清單)、MessageTypes(訊息類型)、PartitionFunctions(分割函數)、PartitionSchemes(分割配置)、Permissions(權限)、Queues(佇列)、RemoteServiceBindings(遠端服務繫結)、RoleMembership(角色成員資格)、Rules(規則)、ScalarValuedFunctions(標量值函數)、SearchPropertyLists(搜尋屬性清單)、SecurityPolicies(安全性政策)、Sequences(順序)、Services(服務)、Signatures(簽章)、StoredProcedures(儲存程序)、SymmetricKeys(對稱金鑰)、Synonyms(同義字)、Tables(表格)、TableValuedFunctions(表格值函數)、UserDefinedDataTypes(使用者定義資料類型)、UserDefinedTableTypes(使用者定義表格類型)、ClrUserDefinedTypes(CLR使用者定義類型)、Users(使用者)、Views(檢視)、XmlSchemaCollections(XML架構集合)、Audits(稽核)、Credentials(認證)、CryptographicProviders(加密提供者)、DatabaseAuditSpecifications(資料庫稽核規格)、DatabaseEncryptionKeys(資料庫加密金鑰)、DatabaseScopedCredentials(資料庫範圍認證)、Endpoints(端點)、ErrorMessages(錯誤訊息)、EventNotifications(事件通知)、EventSessions(事件會話)、LinkedServerLogins(連結伺服器登入)、LinkedServers(連結伺服器)、Logins(登入)、MasterKeys(母金鑰)、Routes(路由)、ServerAuditSpecifications(伺服器稽核規格)、ServerRoleMembership(伺服器角色成員資格)、ServerRoles(伺服器角色)、ServerTriggers(伺服器觸發程序)、ExternalStreams(外部流)、ExternalStreamingJobs(外部串流作業)、DatabaseWorkloadGroups(資料庫工作負荷群組)、WorkloadClassifiers(工作負荷分類器)、ExternalLibraries(外部程式庫)、ExternalLanguages(外部語言)。 |
| /p: | GenerateSmartDefaults=(BOOLEAN 'False') | 在更新含有資料且資料行不允許 null 值的資料表時,自動提供預設值。 |
| /p: | HashObjectNamesInLogs=(BOOLEAN 'False' 假) | 指定是否要以隨機雜湊值取代記錄中的所有物件名稱。 |
| /p: | 忽略AnsiNulls=(BOOLEAN 'True') | 指定在發行至資料庫時,是否忽略或更新 ANSI NULLS 設定中的差異。 |
| /p: | IgnoreAuthorizer=(BOOLEAN 'False') | 指定當您發佈至資料庫時,應該忽略或更新授權者的差異性。 |
| /p: | 忽略欄位校對順序=(布林值 'False') | 當您發佈至資料庫時,指定是否應忽略或更新資料行定序的差異。 |
| /p: | IgnoreColumnOrder=(BOOLEAN '假') | 指定當您發行至資料庫時,是否應略過或更新資料表資料行順序的差異。 |
| /p: | 忽略評論=(布林值 '錯誤') | 指定您發行至資料庫時,是否應忽略或更新註解中的差異。 |
| /p: | 忽略加密提供者文件路徑=(BOOLEAN 'True') | 指定當您發行至資料庫時,應該忽略或更新加密服務提供者的檔案路徑差異。 |
| /p: | 忽略資料庫工作負載組群=(BOOLEAN 'False') | 指定部署期間是否要排除存在於目標上的工作負載群組。 系統不會新增、修改或卸除資料庫工作負載群組。 |
| /p: | 忽略Ddl觸發順序=(BOOLEAN 'False') | 指定當您發行至資料庫或伺服器時,應該忽略或更新資料定義語言 (DDL) 觸發程序的順序差異。 |
| /p: | IgnoreDdlTriggerState=(BOOLEAN '假') | 指定是否在發佈至資料庫時,應忽略或更新資料定義語言 (DDL) 觸發程序的啟用或停用狀態差異。 |
| /p: | 忽略預設結構=(布林值 'False') | 指定當您發行至資料庫時,是否應忽略或更新使用者和應用程式角色的 DEFAULT_SCHEMA 選項的差異。 |
| /p: | IgnoreDmlTriggerOrder= (BOOLEAN 'False') | 指定當您發行至資料庫時,是否應忽略或更新資料操作語言 (DML) 觸發器的順序差異。 |
| /p: | 忽略DML觸發狀態=(BOOLEAN 'False') | 發行至資料庫時,指定是否應該忽略或更新 DML 觸發程序的啟用或停用狀態差異。 |
| /p: | 忽略擴展屬性=(BOOLEAN 'False') | 指定在將資料發佈到資料庫時,是否應忽略或更新擴充屬性的不同。 |
| /p: | 忽略檔案和日誌檔案路徑=(布林值 '真') | 指定當您發行至資料庫時,應該忽略或更新檔案和記錄檔之路徑的差異。 |
| /p: | 忽略檔案組放置=(BOOLEAN 'True') | 指定當您發行至資料庫時,應該忽略或更新 FILEGROUP 中物件位置的差異。 |
| /p: | 忽略文件大小=(布林值 'True') | 指定當您發行至資料庫時,應該忽略檔案大小的差異或應該發出警告。 |
| /p: | 忽略填充因子=(布林值 '真') | 指定當您發行至資料庫時,應該忽略索引儲存體之填滿因數的差異或應該發出警告。 |
| /p: | IgnoreFullTextCatalogFilePath=(BOOLEAN '真') | 指定是否在發佈至資料庫時忽略全文目錄的檔案路徑差異,或發出警告。 |
| /p: | IgnoreIdentitySeed=(BOOLEAN 'False') | 指定在發行更新至資料庫時,是否應忽略或更新識別欄位種子的差異。 |
| /p: | IgnoreIncrement=(BOOLEAN '假') | 指定當您發佈至資料庫時,應該忽略或更新識別欄位增量的差異。 |
| /p: | 忽略索引選項=(布林值 'False') | 指定當您發行至資料庫時,應該忽略或更新索引選項的差異。 |
| /p: | 忽略索引填充=(布林 '真') | 指定當您發行至資料庫時,應該忽略或更新索引填補的差異。 |
| /p: | 忽略關鍵字大小寫=(布林值 '真') | 指定在將內容發布至資料庫時,是否應忽略或更新關鍵字大小寫的差異。 |
| /p: | IgnoreLockHintsOnIndexes=(BOOLEAN 'False') | 指定當您將內容發佈到資料庫時,是否應忽略或更新索引的鎖定提示差異。 |
| /p: | 忽略登入SID=(布林值 'True') | 指定當您發行至資料庫時,是否應該忽略或更新安全性識別編號 (SID) 的差異。 |
| /p: | IgnoreNotForReplication=(布林值 'False') | 指定當您發佈到資料庫時,應該忽略或更新不進行複製的設定。 |
| /p: | 忽略物件佈置於分區方案=(BOOLEAN '真') | 指定當您發行至資料庫時,應該忽略或更新物件在資料分割配置上的位置。 |
| /p: | IgnorePartitionSchemes=(BOOLEAN 'False') | 指定發行至資料庫時,是否應忽略或更新分割方案和函數的差異。 |
| /p: | 忽略權限=(BOOLEAN 'False') | 指定當您發佈至資料庫時,應該忽略或更新權限的差異。 |
| /p: | 忽略帶引號的識別碼=(布林值 'True') | 指定當您發行至資料庫時,應該更新或忽略引號識別項設定的差異。 |
| /p: | IgnoreRoleMembership=(布林值『False』) | 指定當您發行至資料庫時,應忽略或更新登入角色成員資格中的差異。 |
| /p: | 忽略路由生存期=(布林值 'True') | 指定當您發行至資料庫時,應該忽略或更新 SQL Server 將路由保留在路由表中之時間長短的差異。 |
| /p: | 忽略語句之間的分號=(布林值 'True') | 指定您發佈至資料庫時,是否忽略或更新 T-SQL 陳述式中分號的差異。 |
| /p: | 忽略敏感性分類=(BOOLEAN 'False') | 指定比較結構描述模型時,是否應該忽略資料行上的資料敏感度分類。 這只適用於使用 SQL 2019 中推出的 ADD SENSITIVITY CLASSIFICATION 語法所新增的分類。 |
| /p: | 忽略表格選項=(布林值 'False') | 指定當您將資料發佈至資料庫時,是否忽略或更新資料表選項中的差異。 |
| /p: | 忽略表分區選項=(布林值 'False') | 指定當您發佈至資料庫時,要忽略還是更新資料表分割區選項的差異。 此選項只適用於 Azure Synapse Analytics 專用的 SQL 集區資料庫。 |
| /p: | 使用者設定物件忽略=(BOOLEAN 'False') | 指定當您發行至資料庫時,將忽略或更新使用者設定物件的差異。 |
| /p: | 忽略空白=(BOOLEAN 'True') | 指定當您發行至資料庫時,將忽略或更新空白字元的差異。 |
| /p: | IgnoreWithNocheckOnCheckConstraints=(BOOLEAN 'False') | 指定當您發佈時,是否要忽略或更新檢查約束中 WITH NOCHECK 子句的值差異。 |
| /p: | 忽略在外鍵上無檢查的設定=(BOOLEAN 'False') | 當您將資料發佈至資料庫時,指定是否忽略或更新外鍵的 WITH NOCHECK 子句值之差異。 |
| /p: | 忽略工作負載分類器=(布林值 '假') | 指定部署期間是否要排除存在於目標上的工作負載分類器。 |
| /p: | 包含複合物件=(布林值 'False') | 將具有相同資料庫的所有複合元素包含在單一發佈作業中。 |
| /p: | IncludeTransactionalScripts=(BOOLEAN '錯誤') | 指定當您發行至資料庫時,是否應該盡可能使用交易陳述式。 |
| /p: | IsAlwaysEncryptedParameterizationEnabled=(布林值 'False') | 在部署前/後指令碼的 Always Encrypted 資料行上啟用變數參數化。 |
| /p: | LongRunningCommandTimeout(INT32 '0') | 以秒為單位指定對 SQL Server 執行查詢時的長時間執行命令逾時。 使用 0 表示永遠等候。 |
| /p: | NoAlterStatementsToChangeClrTypes=(BOOLEAN'False') | 指定發佈時,如果發現差異,應卸除並重新建立組件,而非發出 ALTER ASSEMBLY 陳述式。 |
| /p: | PerformIndexOperationsOnline=(BOOLEAN 'False') | 指定在部署期間是否線上執行索引作業。 |
| /p: | 將檔案填入檔案群組=(BOOLEAN 'True') | 指定在目標資料庫中建立新 FileGroup 時,是否一併建立新檔案。 |
| /p: | PreserveIdentityLastValues=(BOOLEAN 'False') | 指定是否應在部署期間保留識別資料行的最後一個值。 |
| /p: | RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') | 匯入資料後,離線重建索引。 |
| /p: | 資料級別應用程式註冊=(BOOLEAN '錯誤') | 指出架構是否已向資料庫伺服器註冊。 |
| /p: | 恢復序列目前值=(布林值 'True') | 指定是否應使用 dacpac 檔案部署順序物件目前的值,預設值為 True。 |
| /p: | RunDeploymentPlanExecutors=(BOOLEAN 'False') | 指定是否在執行其他作業時,應該運行 DeploymentPlanExecutor 的貢獻者。 |
| /p: | ScriptDatabaseCollation=(BOOLEAN 'False') | 指定當您發行至資料庫時,應該忽略或更新資料庫定序的差異。 |
| /p: | ScriptDatabaseCompatibility=(BOOLEAN 'False') | 指定您在發佈到資料庫時,應該忽略或更新資料庫相容性差異的選項。 |
| /p: | 資料庫選項設定:ScriptDatabaseOptions=(BOOLEAN 'True') | 指定是否應該在發行動作中設定或更新目標資料庫屬性。 |
| /p: | ScriptDeployStateChecks=(BOOLEAN '假') | 指定是否在發行指令碼中產生陳述式,來驗證資料庫名稱和伺服器名稱是否符合資料庫專案中指定的名稱。 |
| /p: | ScriptFileSize=(BOOLEAN 'False') | 控制將檔案加入至檔案群組時是否指定大小。 |
| /p: | ScriptNewConstraintValidation=(BOOLEAN 'True') | 在發佈結束時,所有的條件約束會當作一個集合進行驗證,避免在發佈中途因檢查或外部索引鍵條件約束造成資料錯誤。 如果設為 False,則會發行您的條件約束,但不檢查對應的資料。 |
| /p: | ScriptRefreshModule=(BOOLEAN 'True') | 在發行指令碼的結尾包含更新語句。 |
| /p: | Storage=({File|Memory}) | 指定在建置資料庫模型時,如何儲存項目。 基於效能考量,預設值為 InMemory。 對於大型資料庫,可能需要檔案支援的儲存體,而且僅適用於 SqlPackage 的 .NET Framework 版本。 |
| /p: | TreatVerificationErrorsAsWarnings=(BOOLEAN 'False') | 指定在發佈驗證期間發生的錯誤是否應視為警告。 系統會先針對產生的部署計畫執行檢查,再針對您的目標資料庫執行計畫。 計畫驗證會偵測出遺漏僅限於目標的物件 (如索引) 這類必須卸除後才能進行變更的問題。 驗證也會偵測因為參考複合專案而存在相依性 (如資料表或檢視),但卻不存在於目標資料庫中的情況。 您可以選擇執行此動作,以取得所有問題的完整清單,而不是在第一個錯誤就停止 Publish 動作。 |
| /p: | 不可修改物件警告=(BOOLEAN 'True') | 指定在無法修改的物件中發現差異時 (例如檔案的檔案大小或檔案路徑不同) 是否應該產生警告。 |
| /p: | 驗證排序規則相容性=(BOOLEAN 'True') | 指定是否驗證定序相容性。 |
| /p: | VerifyDeployment=(BOOLEAN '真') | 指定是否應該在發行前執行檢查,以便在出現阻止發行成功的問題時停止發行動作。 例如,如果目標資料庫的外來鍵不存在於資料庫專案中,導致您在發行時出現錯誤,那麼發行動作可能會中止。 |
SQLCMD 變數
下表描述可用來覆寫在發行動作期間所用 SQL 命令 (sqlcmd) 變數值之選項的格式。 在命令列介面中指定的變數值會覆寫指派給變數的其他值 (例如在發行設定檔中)。
| 參數 | 預設 | 描述 |
|---|---|---|
| /v:{PropertyName}={Value} | 指定動件特定變數的名稱/值對:{VariableName}={Value}。 DACPAC 檔案包含有效 SQLCMD 變數的清單。 如果未針對每一個變數提供值,則會產生錯誤。 |