シーケンスでSSDTツールを使用する場合の既知の問題です。いくつかの解決策があります。
- 公開時にシーケンスオブジェクトを無視します。
- カスタム展開フィルタを使用して、開始値を無視します。
RESTART WITH
の代わりにsp_sequence_get_range
を使用して、ライブに展開した後にカウンタをインクリメントします。それはあなたが手動でシーケンスを展開しなければならないことを意味、これが最も簡単なオプションが、最も厄介である を公開する際のシーケンスを無視
1.オブジェクト。 コマンドライン
/p:ExcludeObjectType=Sequences
2.カスタム展開フィルタ
まずダウンロードAgileSqlClub's展開フィルターから、あなたの公開プロフィール
<ExcludeSequences>True</ExcludeSequences>
に以下を追加したり。
/p:AdditionalDeploymentContributors=AgileSqlClub.DeploymentFilterContributor
/p:AdditionalDeploymentContributorArguments="SqlPackageFilter=IgnoreName(Order_No_Seq)"
3.代わりにRESTART WITH
を使用して、このためにsp_sequence_get_range
:コマンドラインから、
<AdditionalDeploymentContributors>AgileSqlClub.DeploymentFilterContributor</AdditionalDeploymentContributors>
<AdditionalDeploymentContributorArguments>SqlPackageFilter=IgnoreName(Order_No_Seq)</AdditionalDeploymentContributorArguments>
または: は、その後、あなたのデプロイメント・プロファイルに以下を追加します運用サーバーは、開始値を変更するには、
DECLARE @range_first_value SQL_VARIANT;
EXEC sp_sequence_get_range
@sequence_name = 'MySequence',
@range_size = 1000,
@range_first_value = @range_first_value OUTPUT;
このようにして、開始値は常にデプロイメントスクリプトの期待値と一致します。
リソース