問題タブ [vsdbcmd]
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.
visual-studio - サードパーティのデータベースに追加するための VSDBCMD 展開
ERP システムに属する SQL Server 2005 データベースにいくつかのカスタム オブジェクト (ストアド プロシージャなど) があります。カスタム オブジェクトは、ERP オブジェクトとは異なるスキーマにあります。すべてのカスタム アプリケーション データベースに Database Edition .dbproj プロジェクトと vsdbcmd 展開を使用しており、ERP データベースでカスタム オブジェクトを同様に管理したいと考えています。次のいずれかなしでこれを行う方法は明確ではありません。
- すべての ERP オブジェクト (最大 4000 テーブル) を .dbproj にインポートし、それらを手動で ERP 開発と同期させます。Visual Studio は、これらをインポートしようとしたときに失敗したため、このサイズのプロジェクトを実際に処理できるかどうかはわかりません。
- どうにかして、ERP スキーマ (2 つある) を差分プロセスから除外して、vsdbcmd によって削除されないようにします。これが可能であることを示唆するドキュメントは見つかりませんでした。
設定は認識していIgnoreDefaultSchema
ますが、無視する必要があるスキーマが 2 つあります。また、「既定のスキーマ」アプローチには満足できません。別のユーザーによる展開は大惨事になる可能性があります。
サードパーティのデータベースへのカスタム追加に .dbproj と vsdbcmd をうまく使用できた人はいますか? そうでない場合、SQL ソース管理と展開をどのように管理していますか?
datadude - データベースのTSD02016エラーをどのように修正しますか
VisualStudio2010データベースプロジェクトツールvsdbcmd.exeを使用してスキーマを作成しているデータベースがあります。
ツールはエラーを報告しています:
エラーTSD02016、Gen-259(12,50)列名が無効です。テーブル名が指定されていません。
このエラーの原因を特定するにはどうすればよいですか?
インターネット(http://social.msdn.microsoft.com ....)で、キーワードが正しく使用されていない可能性を示すリソースを1つ見つけましたが、エラーメッセージは同じではありません。
Gen-259とは何ですか?
ありがとう、
キース
visual-studio-2010 - 主キー制約違反、vsdbcmd 経由で DB をデプロイする場合のみ
VS 2010 Premium RTMRel (10.0.30319.1) と SS2008 を使用しています。AOK を構築するデータベースがあり、いくつかのサンプル データをロードする配置後スクリプトがあります。VS UI を介してこの DB をビルドしてデプロイすると、問題なく動作します。vsdbcmd を使用して展開しようとすると、次のようなエラーでデータの作成に失敗します。
** * SQL01268 C:\source\mydatabase.sql (5197,0) .Net SqlClient データ プロバイダー: メッセージ 2627、レベル 14、状態 1、行 227 PRIMARY KEY 制約 'pk_customers' の違反。オブジェクト 'dbo.customers' に重複するキーを挿入できません。* *
デモ目的で、特定のレコードを顧客テーブルに入力しようとしており、id 列の IDENTITY プロパティをオーバーライドして、選択した値を設定しています。デプロイ後のスクリプトの関連する行は次のとおりです。
コマンドラインではなく、UI を介して (SET IDENTITY INSERT ON を使用して) IDENTITY 列をオーバーライドできる理由を知っている人はいますか?
いいえ、顧客テーブルに id = 10001 のレコードが既に存在する可能性はありません。テーブルには他のレコード (または挿入) はまったくありません。
エラーメッセージの「オブジェクトの重複キー」の部分は完全に間違っており、PK列に自分の値を入れようとしていることに反対していると思います。
PK 制約には標準のデフォルトがあります。デフォルトを変更して IGNORE_DUP_KEY = ON に設定すると、コマンド ライン デプロイが機能します。しかし、私はそれをする必要はありません。
洞察や提案をいただければ幸いです。
database-project - vsdbcmdデータの損失が発生する可能性がありますが、どこで?
vsdbcmdを使用してデータベースをデプロイする場合:
私は得る:
SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur.
SQL01268 An error occurred while the batch was being executed.
これは問題ありませんが、データ損失が発生する場所はわかりません。を使用する必要があることを確認するには<DeployToScript>True</DeployToScript>
、スクリプトをロードして以下を確認します。
IF EXISTS (select top 1 1 from [dbo].[MyTable])
RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
最初にSQLを生成せずに、DBに直接デプロイするときにvsdbcmdにこの情報を表示させる方法はありますか?
ありがとう
visual-studio-2010 - データベースプロジェクトは、ドロップされた列の展開に関するテーブルの「再構築」を主張します
そのため、スキーマをいくつか変更して、デプロイしているVS2010データベースプロジェクトがあります。特に、VSDBCMDが「再構築」、つまり名前の変更->作成->コピー->ドロップを要求するテーブルが1つあります。
このテーブルの唯一の変更は、いくつかの列を削除することです。これは、単に私が知らない、列を削除することで処理できます。この特定のテーブルが「添付ファイル」と呼ばれ、15ギガ程度の重さがあることを除いて、通常は気にしません。15以上のギグが空いていないため、これには長い時間がかかり、データベースがロックされ、ローカルで失敗し、テスト環境でリモートでタイムアウトします。
VSDBCMDがデプロイ時にスキーマを変更するために従うルールを誰かに教えてもらえますか?
または、おそらくあなたは同様の問題を経験し、提案がありますか?
ありがとう!
sql-server-2008 - vsdbcmd.exeを使用しているときにsqlceme35.dllを読み込めません
vsdbcmd.exeを使用してデータベースをWindows7x64上のSQLServer2008に展開していますが、次のようなエラーメッセージが表示されます。
予期しない障害が発生しました:DLLをロードできません'sqlceme35.dll':指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)。
このメッセージが表示される理由がわかりません。展開スクリプトはSQLCEとは関係がなく、展開は他のWindows7x64マシンで機能します。
database-project - vsdbcmd を使用してデータベース プロジェクトをデプロイすると、「データベースでは Vardecimal サポートが有効になっていますが、プロジェクトでは無効になっています」というエラーが表示されます。
私は得る:SQL01265 Vardecimal support is enabled for the database but disabled for the project
"<VardecimalStorageFormatOn>True</VardecimalStorageFormatOn>"
.sqlsettings ファイルを次のように、 .sqldeploymentファイルを次のように変更しようとしましたが"<DeployDatabaseProperties>True</DeployDatabaseProperties>"
、まだエラーが発生します。
プロジェクトが2005年に設定されたVS2010 DBプロジェクトで、アップグレードされているデータベースは2008年です。
.sqlsettings ファイルで VardecimalStorageFormatOn を false に設定し、db プロパティをデプロイしていなくても、2008 db の罰金を更新する別の 2005 DB プロジェクトがあります。
一方が機能し、もう一方が機能しない理由は何ですか?
ありがとう
visual-studio-2010 - VSDBCMD を使用して CREATE DATABASE が失敗する
VSDBCMD ツールを使用して VS2010 データベース プロジェクトを展開しようとすると、次のエラーが発生します。
ただし、VSDBCMD によって生成された SQL スクリプトを取得して SQL Management Studio で実行すると、問題なく動作します。同様に、Mgt Studio で DB を手動で作成できます。
「オペレーティング システム エラー 21」は明らかにデバイスの準備ができていませんが、これは私には偽りのように見えます...フォルダー パスはすべて正しく、フォルダーのセキュリティを解除しても問題は解決しません (例: 「すべてのユーザー」 > フル コントロール)。 . また、サーバーの SQL ログまたはイベント ビューアにもエラーはありません。
コマンド ラインで VSDBCMD を実行する場合と、Management Studio を介して同じ SQL スクリプトを実行する場合の違いは何ですか??
どんなアイデアでも大歓迎です!
クリス
database - 2 つのデータベースの違いに対する VSDBCMD ?
「vsdbcmd two databases diff」を Google/Bing で検索しても、明確な結果が得られません。同じサーバー上に 2 つのデータベースがあり、それらを比較して、A->B からのスキーマの違いを適用したいと考えています。VS2010 GUI でできることと同じように。
誰かが私を正しい方向に向けることができますか?
ありがとう。
visual-studio-2010 - データベース プロジェクトをデプロイできません - マニフェストに接続文字列が表示されない VSDBCMD デプロイ
このチュートリアルでは、カスタム ワークフローを定義して Team Foundation ビルドからデータベースを展開する方法を示します: http://msdn.microsoft.com/en-us/library/ff805001.aspx
しかし、TFS がデータベースをデプロイしようとすると、接続文字列を指定する必要があると不平を言います。.deploymanifest ファイルをコマンド ライン パラメーターとして指定しました。.deploymanifest ファイルには接続文字列が含まれています。
VSDBCMD が接続文字列を入力していないと文句を言うのはなぜですか? また、.deploymanifest ファイルにも含まれている未解決の参照についても不平を言っています。
以下は、私の .deploymanifest ファイルの上部の数行です。
編集: 上記の .deploymanifest ファイルのスニペットは正しくありません。そのスニペットは、TFS ビルドではなく、ローカル ビルドによって生成された .deploymanifest ファイルから取得しました。TFS ビルドによって生成された .deploymanifest が正しくないため、使用されている構成を調査し、最終的に問題を解決しました (以下の回答を参照)。
VSDBCMD から得られるエラーは次のとおりです。