問題タブ [dacpac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
311 参照

sql-server - SQL Serverデータツール(SSDT)-展開時にデータ型を決定しますか?

ターゲットSQLServerインスタンスで使用可能な機能に応じて、SSDT / dacpac展開で展開時に列のデータ型を決定する手法を知っている人はいますか?具体的な例:

この場合、SQL ServerインスタンスでFILESTREAMが有効になっていない場合は、FILESTREAMではなく従来のVARBINARY(MAX)BLOBに自動的にフォールバックできるようにしたいと思います。

0 投票する
0 に答える
280 参照

inno-setup - inno setup を使用したデータ層アプリケーションのデプロイ

私は助けが必要です。inno setup を使用して別のユーザーのコンピューターに展開する必要があるデータ層アプリケーション .dacpac があります。スクリプトはターゲット マシンで SQL Server インスタンスを作成し、データ層アプリケーションをデプロイする必要があります。sqlpackage.exe を使用することは可能だと思いますが、インストール exe にすべての依存関係の ddl を含める必要があります。データ層アプリケーションをデプロイする別の方法はありますか?

0 投票する
2 に答える
2092 参照

versioning - DACPAC ファイルからバージョン番号を取得する方法

生成されたバージョン番号を使用して、自動ビルドから DACPAC ファイルを生成します。sqlpackager の操作中には便利ですが、ファイルを操作する前に DACPAC のバージョン番号を確認できる必要があります。

DACPAC ファイルのバージョン番号と説明を照会するには、どのツールを使用できますか (もちろん自動化されています)。

0 投票する
2 に答える
4295 参照

sql-server-2008 - SSDT Publish (.dacpac) を使用して null 以外の外部キー スキーマの更新を展開する

私は .dacpacs を使用して、データベースの更新をさまざまな環境に展開しています。特定の更新プログラムの発行が失敗する原因となるシナリオを発見しました。

新しいテーブルを追加し、新しいテーブルを参照する null 非許容の外部キーを持つdbo.Supplier別のテーブルに列を追加する必要があります。dbo.PickZoneSSDT プロジェクト内のスキーマはこれを反映しており、新しい NOT NULL 列に備えるために、次の配置前スクリプトがあります。

上記のスクリプトは、スキーマとデータを更新して、公開が発生したときに (私は sqlpackage.exe を使用しています)、外部キー制約を に適用しても失敗しないようにしますdbo.PickZone.SupplierId

問題は、vs2012 Publish と sqlpackage.exe デプロイの両方が必要なスキーマの更新を準備し、デプロイ前スクリプトを実行してから、スキーマの更新を実行するように見えることです。変化します。

これにより、スキーマの公開でテーブルと列の追加が再度試行され、失敗します。

もちろん、dacpac デプロイの外部でこれらのタイプの準備スクリプトを実行するようにデプロイ プロセスを変更できますが、dacpac がすべてのスキーマ変更を担当するようにしたいと思います...

このタイプの更新に対応するためにdacpacを公開する方法を知っている人はいますか?

0 投票する
1 に答える
631 参照

database - dacpac から dbschema を抽出する方法

データベース プロジェクトを VS2010 から VS2012 にアップグレードしました。問題は、生成された dbschema を使用してストアド プロシージャのラッパーを自動的に作成していたことです。更新されたデータベース プロジェクト (または生成された .dacpac) から dbschema を取得するにはどうすればよいですか?

0 投票する
1 に答える
1322 参照

sql - *.dacpac を SQL Server データベース プロジェクトにインポートする

VisualStudio 2012 で SQL Server データベース プロジェクトを作成しました。

コマンド ラインからプロジェクトに *.dacpac ファイルをインポートする方法はありますか? データベース プロジェクトは、データベースの現在の状態に更新する必要があります。

VS2012 のコンテキスト メニューで使用できるコマンドがあることは知っていましたが、このプロセスを自動化するには、コマンド ラインからコマンドを実行する必要があります。

*.dacpac ファイルの代わりに SQL ファイルのインポートも受け付けます。

0 投票する
2 に答える
1381 参照

sql - SqlPackage.exe によるデータ層アプリケーションのバージョンの更新

現在、 SqlPackage.exe を使用してコマンド ラインからアプリケーション データベースの展開を自動化していますが、データ層アプリケーションのバージョンを更新する方法が見つかりません。

(開発はもちろん…)

http://msdn.microsoft.com/en-us/library/hh550080%28v=vs.103%29.aspx

/Action:Publish を使用して、新しく構築した *.dacpac をプッシュしていますが、これが不可能な場合、バージョンは常に v1.0.0.0 のままです。ExtendedProperty を変更するにはどうすればよいでしょうか。

データベースを見て、インストールされているバージョンを参照したいだけです。

何か案は?

0 投票する
2 に答える
3879 参照

c# - dacpac をトラバースする方法

新しい SQL 2012 データベースを参照できるように、dbproj を sqlproj にアップグレードしようとしています。現在、.dbschema xml ファイルを読み取ってすべてのテーブルと列を検索し、それらから情報を取得するプログラムがあります。このデータを使用して、独自のカスタム クラスを構築します。

新しい sqlproj ファイルは、必要なデータを取得するために問い合わせたい dacpac を生成します。dacpac をトラバースして必要な情報を取得するために、次のように記述しました。

これを正しい方法で行っているのか、それとももっと良い/簡単な方法があるのか​​ わかりません。Google/SE で何を検索したらよいかわからず、例も見つかりません。

変数列には、Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSimpleColumn である ContextObject という非パブリック メンバーがあることがわかります。このオブジェクトにアクセスできれば、そこから必要なすべての情報を引き出すことができます。テーブルには、私を助ける同様の ContextObject もあります。

とにかく、現在これはdacpacを開き、すべてのテーブルと列の名前を取得します。私が取得するデータの例は次のとおりです。

基本的には、次のいずれかを行いたいと考えています。

  1. ContextObject にアクセスして、Microsoft.Data.Tools.Schema.Sql.SchemaModel.* オブジェクトを取得する OR
  2. ObjectType プロパティからプロパティとメタデータの値を取得する OR
  3. この情報を簡単に取得する方法を使用して、ゼロから始めます

列の型、null 可能かどうか、列のスケールと精度などの情報を取得する必要があります。

0 投票する
1 に答える
1361 参照

powershell - DACFx 3.0 API を使用した DACPAC のアップグレード - 既存のデータベースの現在の DAC バージョンを調べる方法は?

私は現在、2.0 の代わりに DACFx 3.0 API を使用するように、チームのデータベース展開 Powershell スクリプトを書き直しています。Microsoft.SqlServer.Dac.DacServices新しいコントローラー クラスを使用して、DACPAC のアップグレードを正常に機能させることができました。

残っている唯一の問題は、現在の DACPAC バージョン番号を既存のデータベースから取得するにはどうすればよいかということです。

展開スクリプトの一部として、これをアップグレード先の DACPAC バージョンと比較して、展開が必要かどうかを判断します。これは、データベース関連のテストを実行するかどうかを決定するためにも使用されるため、この方法でビルドにかかる時間を大幅に短縮できます。

古い DacFx2.0 API はMicrosoft.SqlServer.Management.Dac名前空間に存在するため、古い Powershell スクリプトではDacStore、データベース接続からオブジェクトを作成し、そこから Version プロパティを取得するだけです。

以前の PowerShell スクリプト

現在 3.0 の問題、API は名前空間にあり、「以前のバージョンのおよびクラスMicrosoft.SqlServer.Dacを使用する代わりに、ほとんどすべてがまったく新しいコントローラー クラスにリファクタリングされています。( src )」DacStoreDacExtractionUnitDacServices

DacStoreクラスで同等のものをDacServicesまだ見つけることができなかったため、現時点では、現在の DAC バージョンを取得する方法がわかりません。MSDN のドキュメントを検索してみましたが、Powershell のすべてのセクションで古い DACFx2.0 API が参照されていました。(例:ここ)。

誰かが私を助けることができれば、それは大歓迎です。ありがとう!

0 投票する
4 に答える
51369 参照

sql - SQL スクリプトのエラー: バッチごとに許可されるステートメントは 1 つだけです

PostDeployment の DACPAC で実行したい 4 つの SQL スクリプトがありますが、そのうちの 3 つの VS プロジェクトをビルドしようとすると、次のエラーが発生します。

スクリプトINSERTには、DB 上の異なるテーブルのステートメントのみが含まれています。そして、それらはすべてそのように構成されています

異なるテーブルと異なるデータのみ。

私の質問は、構文と操作の点ですべてのスクリプトが同じであるのに、VS がそのうちの 3 つについて不平を言うのはなぜですか?

PS: エラーが示すようにステートメント間に 'GO' を追加しても何も起こりません。