問題タブ [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.
c# - SQL Server ScriptDom の解析
私が一緒に働いている開発者チームは、既存のデータベースに対して行う必要がある大規模な作業に SQL Data Projects を使用しています。私たちは数週間で、いくつかの落とし穴がありましたが、経験は一般的に良好です.
ただし、本番環境にデプロイするとき、dba チームは DACPAC をデプロイ方法として受け入れることを拒否しました。代わりに、DML または DDL ステートメントごとに従来のスクリプトを見たいと考えています。
現在の考えでは、完成した SQL プロジェクトと本番環境の間で差分スクリプトを作成し、それを個別のスクリプトに解析します。良くないね。
差分スクリプトを解析するには、次の 2 つのオプションがあるようです。
- バッチ区切りコマンド GO に基づいてスクリプトを解析します。かなり基本的なソリューションですが、有望です。
- または、Microsoft.SqlServer.TransactSql.ScriptDom を使用します。これはより将来性のあるものに見えますが、はるかに複雑に見えます。
現在、ScriptDom を試していますが、理解できません。私の現在の問題だけでなく、次のとおりです。
C# で ScriptDOM を使用して、次の SQL を解析しようとしています。
しかし、VARCHAR サイズ (この場合は 255) にアクセスする方法がわかりません。
私が使用しているコードは次のとおりです。
各列の定義から、長さのプロパティなどを見つけることが期待されていました。ただし、私が苦労している訪問者パターンを使用して、各列定義を再解析できるのではないかという疑念も潜んでいます。何か案は?
database - MsDeploy と DbDacFx プロバイダーおよびデータベース リファレンス
DbDacFx プロバイダーを使用して、運用マシンを同期しています。ソリューションには、Web サイトとともに展開する ssdt データベース プロジェクトがあります。A.sqlproj には、master.dacpac および別のデータベース プロジェクトの dacpac (X.dacpac など) への参照があります。
すべての dacpac は、展開のために同じ場所にあります。
A.dacpac を展開しようとすると、次のようなエラーが発生します。
Info: データベースへのパッケージのデプロイ: エラーが発生しました。エラー: 'X.dacpac' という名前のソースからの外部要素への参照を解決できませんでした。そのようなソースがロードされていないためです。エラー: 「master.dacpac」という名前のソースからの外部要素への参照を解決できませんでした。そのようなソースがロードされていないためです。.....上記のエラーが複数回繰り返されました..... リモート コンピュータでリクエストが処理されたときにエラーが発生しました。エラー: 呼び出しのターゲットによって例外がスローされました。---> System.Exception: メンバー 'ClassName' が見つかりませんでした。System.Runtime.Serialization.SerializationInfo.GetElement(文字列名、Type& foundType) で System.Runtime.Serialization.SerializationInfo.GetString(文字列名) で System.Exception..ctor(SerializationInfo 情報、1 syncPassId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable
1 passId) エラー: メンバー 'ClassName' が見つかりませんでした。System.Runtime.Serialization.SerializationInfo.GetElement(文字列名、Type& foundType) で System.Runtime.Serialization.SerializationInfo.GetString(文字列名) で System.Exception..ctor(SerializationInfo 情報、StreamingContext コンテキスト) エラー数: 1。
問題を克服する方法を知る必要があります。ありがとうヤティン。
c# - DAC API を介して DACPAC プロジェクトの参照にアクセスするにはどうすればよいですか?
メソッドを使用して、参照されたプロジェクトからテーブルを表すGetObject
のインスタンスを取得しようとしています:TSqlObject
残念ながら、それはうまくいかないようです。
DacQueryScopes.All
システム以外のデータベースにあるものを除いて、すべてのオブジェクトを取得するドキュメント内を読みました。
これが失敗の理由だと思いますが、他のプロジェクト内の要素に到達するにはどうすればよいでしょうか?
sql-server - SQL Server データ ツール プロジェクトで "フルテキスト カタログへの未解決の参照" を修正する方法
Microsoft Azure SQL Database V12 をターゲットとする SQL Server Data Tools (12.0.50730.0) を使用して、データベースを展開し、フルテキスト インデックス作成を設定しようとしています。
ここで指示されているように、SSMS を使用してカタログを作成しました: https://technet.microsoft.com/en-us/library/ms187035(v=sql.105).aspx
Visual Studio 2013 に移動し、データベース プロジェクトにフル テキスト インデックスを追加すると、以下がテーブル定義に追加され、テーブル名、列、キー、およびカタログを入力します。
これを行うと、フルテキスト インデックスに未解決の参照が含まれているというエラーが表示されます
Data Tools の外部でカタログを作成する必要があったため、これは理にかなっていますが、全文索引の作成を進めるにはどうすればよいでしょうか?
.net - TSqlObject インスタンスから主キー列を取得する方法は?
TSqlObject
次の方法で、インスタンスから主キー列を取得しようとしています。
もちろん、GetReferenced
メソッドはインスタンスのインスタンスを期待しているため、これは機能しませんModelRelationshipClass
。
では、どうすればそれを行うことができますか?
sql-server - dacpac を使用したデータベースのアップグレード
dacpac を介してクライアントにデータベースをデプロイしています。最初に、データベースがデプロイされているかどうかを確認し、バージョン 1.0 を作成します。今後のアップグレードでは、クライアントのバージョンを確認します。新しいデータベースがバージョン 2.0 の場合、クライアント マシンで 1.0 を 2.0 にアップグレードし、クライアント マシンのバージョン番号も更新する必要があります。私のコードは以下です。
次に、クエリを実行してバージョンを確認します。
データベースが存在しないかどうかを確認しました。データベースが作成され、バージョンが v1.0 で存在します。しかし、データベースをアップグレードすると、アップグレードは新しい変更で正常に機能しますが、バージョン番号が 2.0 に変更されません。クエリを再度実行すると、まだ v1.0 と表示されます。技術的にすべての変更を行ったので、クライアントデータベースを2.0にするために必要なオプションまたは変更は何ですか。
sql-server - master および msdb への参照を含む SqlPackage.exe を使用して DACPAC を展開します。
「マスター」データベースまたは「msdb」データベースを参照する DB オブジェクトを持つ Visual Studio DB プロジェクトがあります。
現在、次の 2 つのケースがあります。
(1) プロジェクト設定でシステム データベース 'master' および 'msdn' への参照がない場合、プロジェクトをビルドすることは可能ですが、'master' または 'msdb' への参照ができないため、多くの警告が表示されます。解決されます。DACPAC の導入は問題ありません。
(2) プロジェクト設定でシステム データベース 'master' および 'msdn' への参照を使用すると、警告なしでプロジェクトをビルドできますが、'master.dacpac' および 'msdn.dacpac' も存在する場合にのみ展開が可能です。私たちのプロジェクト DACPAC で配信されます。
したがって、両方のケースで機能しますが、最初のケースでは、開発中に多くの警告が表示されます。2 番目のケースでは、'master.dacpac' と 'msdn.dacpac' を顧客に提供する必要があり、展開中にそれらも更新されるかどうかはわかりません。
では、両方のケースのこの欠点を解決する方法はありますか?
DB プロジェクトのターゲット プラットフォームは SQL Server 2012 に設定されています。SQL Server 2012 と SQL Server 2014 を更新するために DACPAC ファイルを使用したいと考えています。