問題タブ [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.
sql-server - SQL Serverデータツール(SSDT)-展開時にデータ型を決定しますか?
ターゲットSQLServerインスタンスで使用可能な機能に応じて、SSDT / dacpac展開で展開時に列のデータ型を決定する手法を知っている人はいますか?具体的な例:
この場合、SQL ServerインスタンスでFILESTREAMが有効になっていない場合は、FILESTREAMではなく従来のVARBINARY(MAX)BLOBに自動的にフォールバックできるようにしたいと思います。
inno-setup - inno setup を使用したデータ層アプリケーションのデプロイ
私は助けが必要です。inno setup を使用して別のユーザーのコンピューターに展開する必要があるデータ層アプリケーション .dacpac があります。スクリプトはターゲット マシンで SQL Server インスタンスを作成し、データ層アプリケーションをデプロイする必要があります。sqlpackage.exe を使用することは可能だと思いますが、インストール exe にすべての依存関係の ddl を含める必要があります。データ層アプリケーションをデプロイする別の方法はありますか?
versioning - DACPAC ファイルからバージョン番号を取得する方法
生成されたバージョン番号を使用して、自動ビルドから DACPAC ファイルを生成します。sqlpackager の操作中には便利ですが、ファイルを操作する前に DACPAC のバージョン番号を確認できる必要があります。
DACPAC ファイルのバージョン番号と説明を照会するには、どのツールを使用できますか (もちろん自動化されています)。
sql-server-2008 - SSDT Publish (.dacpac) を使用して null 以外の外部キー スキーマの更新を展開する
私は .dacpacs を使用して、データベースの更新をさまざまな環境に展開しています。特定の更新プログラムの発行が失敗する原因となるシナリオを発見しました。
新しいテーブルを追加し、新しいテーブルを参照する null 非許容の外部キーを持つdbo.Supplier
別のテーブルに列を追加する必要があります。dbo.PickZone
SSDT プロジェクト内のスキーマはこれを反映しており、新しい NOT NULL 列に備えるために、次の配置前スクリプトがあります。
上記のスクリプトは、スキーマとデータを更新して、公開が発生したときに (私は sqlpackage.exe を使用しています)、外部キー制約を に適用しても失敗しないようにしますdbo.PickZone.SupplierId
。
問題は、vs2012 Publish と sqlpackage.exe デプロイの両方が必要なスキーマの更新を準備し、デプロイ前スクリプトを実行してから、スキーマの更新を実行するように見えることです。変化します。
これにより、スキーマの公開でテーブルと列の追加が再度試行され、失敗します。
もちろん、dacpac デプロイの外部でこれらのタイプの準備スクリプトを実行するようにデプロイ プロセスを変更できますが、dacpac がすべてのスキーマ変更を担当するようにしたいと思います...
このタイプの更新に対応するためにdacpacを公開する方法を知っている人はいますか?
database - dacpac から dbschema を抽出する方法
データベース プロジェクトを VS2010 から VS2012 にアップグレードしました。問題は、生成された dbschema を使用してストアド プロシージャのラッパーを自動的に作成していたことです。更新されたデータベース プロジェクト (または生成された .dacpac) から dbschema を取得するにはどうすればよいですか?
sql - *.dacpac を SQL Server データベース プロジェクトにインポートする
VisualStudio 2012 で SQL Server データベース プロジェクトを作成しました。
コマンド ラインからプロジェクトに *.dacpac ファイルをインポートする方法はありますか? データベース プロジェクトは、データベースの現在の状態に更新する必要があります。
VS2012 のコンテキスト メニューで使用できるコマンドがあることは知っていましたが、このプロセスを自動化するには、コマンド ラインからコマンドを実行する必要があります。
*.dacpac ファイルの代わりに SQL ファイルのインポートも受け付けます。
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 を変更するにはどうすればよいでしょうか。
データベースを見て、インストールされているバージョンを参照したいだけです。
何か案は?
c# - dacpac をトラバースする方法
新しい SQL 2012 データベースを参照できるように、dbproj を sqlproj にアップグレードしようとしています。現在、.dbschema xml ファイルを読み取ってすべてのテーブルと列を検索し、それらから情報を取得するプログラムがあります。このデータを使用して、独自のカスタム クラスを構築します。
新しい sqlproj ファイルは、必要なデータを取得するために問い合わせたい dacpac を生成します。dacpac をトラバースして必要な情報を取得するために、次のように記述しました。
これを正しい方法で行っているのか、それとももっと良い/簡単な方法があるのか わかりません。Google/SE で何を検索したらよいかわからず、例も見つかりません。
変数列には、Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSimpleColumn である ContextObject という非パブリック メンバーがあることがわかります。このオブジェクトにアクセスできれば、そこから必要なすべての情報を引き出すことができます。テーブルには、私を助ける同様の ContextObject もあります。
とにかく、現在これはdacpacを開き、すべてのテーブルと列の名前を取得します。私が取得するデータの例は次のとおりです。
基本的には、次のいずれかを行いたいと考えています。
- ContextObject にアクセスして、Microsoft.Data.Tools.Schema.Sql.SchemaModel.* オブジェクトを取得する OR
- ObjectType プロパティからプロパティとメタデータの値を取得する OR
- この情報を簡単に取得する方法を使用して、ゼロから始めます
列の型、null 可能かどうか、列のスケールと精度などの情報を取得する必要があります。
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 )」DacStore
DacExtractionUnit
DacServices
DacStore
クラスで同等のものをDacServices
まだ見つけることができなかったため、現時点では、現在の DAC バージョンを取得する方法がわかりません。MSDN のドキュメントを検索してみましたが、Powershell のすべてのセクションで古い DACFx2.0 API が参照されていました。(例:ここ)。
誰かが私を助けることができれば、それは大歓迎です。ありがとう!
sql - SQL スクリプトのエラー: バッチごとに許可されるステートメントは 1 つだけです
PostDeployment の DACPAC で実行したい 4 つの SQL スクリプトがありますが、そのうちの 3 つの VS プロジェクトをビルドしようとすると、次のエラーが発生します。
スクリプトINSERT
には、DB 上の異なるテーブルのステートメントのみが含まれています。そして、それらはすべてそのように構成されています
異なるテーブルと異なるデータのみ。
私の質問は、構文と操作の点ですべてのスクリプトが同じであるのに、VS がそのうちの 3 つについて不平を言うのはなぜですか?
PS: エラーが示すようにステートメント間に 'GO' を追加しても何も起こりません。