1

SSDT を使用してデータベースを公開した後、コードリストを入力する必要があります。そこで、新しい配置後スクリプトをプロジェクトに追加し、そこから SQLCMD :r コマンドを使用して別のスクリプトを呼び出し、それぞれが 1 つのテーブルにデータを挿入します。ただし、テーブルがすでにいっぱいになっている場合は、主キー制約に違反しており、セットアップ全体が壊れています。

デプロイ後のスクリプトでエラーを抑制するにはどうすればよいですか? SQLCMD コマンド:on error ignoreはサポートされていません。

4

2 に答える 2

2

生の INSERT の代わりに MERGE ステートメントを使用して、探しているものを実現する方法の良い例を次に示します。

http://blogs.msdn.com/b/ssdt/archive/2012/02/02/included-data-in-an-sql-server-database-project.aspx

于 2012-07-27T20:09:42.273 に答える
0

既存の値の再挿入を回避するためにスクリプトを変更してみませんか?一般的なテーブル式を使用すると、次のようなものになります。

;with cte as (select *, row_number() over (partition by ... order by ...) as Row from ... )
  insert into ...
    select ...
    from cte where not exists (...) and cte.Row = 1

テーブル定義がないと、より明確にすることはできません...

于 2012-04-10T13:16:59.397 に答える