問題タブ [sql-server-data-tools]
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 - コメントアウトセット変数宣言Trueの結果、MSBuildからエラーが発生します
SSDTプロジェクトのスクリプトを自動化して、変数の代替値を渡して後でデプロイできるように取り組んでいます。
私の公開プロファイルは次のようになります。
テストスクリプトでは、PowerShellから次のコマンドを呼び出しています
次に、以下の例のように、すべて変数値に関連するいくつかのエラーが発生します。
ただし、CommentOutSetVarDeclarationsをfalseに設定すると、スクリプトはエラーなしで生成されます。SSDTを介して同じタスクを実行する場合、エラーは発生しません。
誰かが同様の行動を経験したことがありますか?
sql-server - SSDT の SQLCLR Nullable DATETIME2
DATETIME2
を受け取り、を返すSQLCLR UDF を作成したいと考えていますDATETIME2
。入力と出力は NULL を許可する必要があります。
SQL Server データベース プロジェクト (SSDT) を作成し、SQLCLR プロパティで VB 言語として構成し、次のファイルを追加しますTest.vb
。
この方法での nullable の使用は、http://msdn.microsoft.com/en-us/library/ms131092(v=SQL.100).aspx ごとに SQL Server 2008 以降でサポートされているように見えます。
ただし、デプロイ コマンドを実行すると、次のエラーが発生します。
SQL46010: の近くの構文が正しくありません)。
これは、生成された SQL が次のとおりであるためです。
SqlDateTime
の全範囲と精度が必要なため、代用できませんDATETIME2
。
sql-server - SSDT - データベース リファレンス
Visual Studio 2012 にデータベース プロジェクトがあり、リンク サーバーを介して自分の設計ではないデータベースにアクセスする必要があります。
私の最初のアプローチは、[サーバー].[データベース].[スキーマ].[テーブル] の 4 つの部分でデータベースへのアクセスをスクリプト化することでした。このアプローチでは、SQL71562a および SQL71501 の警告/エラーがスローされます。
調査を通じて、データベース参照を作成する必要があることに気付きました。私の質問はそのプロセスに関するものです。
サーバー上に存在する他のベンダーのデータベースからDACPACを生成するのが正しいと思いましたが、SSMSで失敗するためDACPACを生成できません(暗号化が原因だと思います)。
私の次のアイデアは、そのデータベースから必要なスキーマが定義されているプロジェクトを作成し、それを参照することです(最初はおそらく間違った方法だと推測しているので、まだ試していません)。
これに関する助けをいただければ幸いです。前もって感謝します。
visual-studio-2012 - VisualStudio2012/2013でのSSISBIDSの使用
VisualStudio2012でSSIS/BIDSプロジェクトを使用したい。
VisualStudio2010とVisualStudio2012の両方をMicrosoftSQLServer2012と一緒にインストールしています。
VS 2010が最初にインストールされ、次にMS SQL 2012がインストールされ、BIDSがVS2010と統合されました。
ただし、BIDSとVS2012の統合に関するヘルプが見つからないようです。
このトピックに関連するSOに関するいくつかの質問に出くわしましたが、それらはすべて、2012年ではなく2010年と統合されていました。
MS SQL 2012で、SQLServerデータツールを入手できることを知っています。これは、Visual Studio 2012とBIDSを統合できないことを意味しますか?
ソリューション2012:
私が受け取った回答の1つが問題を部分的に解決したので、ここで解決策を更新する必要がありました。によって提供された回答は問題@user2141936を解決しましたが、既存のインスタンスを更新している間、BlockMixedArchitectureInstallエラーが発生し続けました。
新しいインスタンスを作成しなくても機能しました!!
補足:更新プログラムをインストールすると、公開データベースプロジェクトが2012サーバーに壊れました。DACFrameworkパッチをダウンロードしてインストールする必要があります。
ソリューション2013:
http://www.microsoft.com/en-us/download/details.aspx?id=42313をダウンロードしてインストールします
sql-server - SSDT未解決の参照
そのデータベースにSQLServerの他のユーザーが含まれている役割がある場合、SSDTのデータベースを正しく操作するにはどうすればよいですか?
たとえば、「Shared」というデータベースが1つあり、SQLログインアカウントが「Shared」の「LookupName」DBロールに含まれている他の120のデータベースがあるとします。
SSDTが「LookupName」DBロールが存在することを確認したいかどうかは気にしません。ただし、たまたまその役割を担っている120人のユーザーすべてを作成しようとはしません。しかし、それらを除外しようとすると、他のエラーが発生します。
「共有」データベースの構造は、ロールに含まれる可能性のあるユーザーの数に影響されません...これは、DBAが必要に応じて設定できる必要があるものです。では、SSDTにそれらが比較に含まれないようにするにはどうすればよいですか?
SSDT比較には、含める、無視するなどのチェックボックスが110以上ありますが、必要なチェックボックスが見つかりませんでした。
何か案は?
tfs - sqlproj post-build $(Configuration)がTFSで正しくありません
最新バージョンのSSDTを使用してsqlprojを記述していますが、ビルド後のイベント$(Configuration)マクロがTFSを使用して正しく評価されていないようです。
プロジェクト内で次のビルド後のイベントコマンドを作成しました
Visual Studioを使用している私のマシンでは、これは正しく評価されます。
"C:\ Workspaces \ MyProject \ Dev \ Src \ MyProject.Database \ MyProject.Database.Config \ Debug \DeployCommand.cmd"
IDEを使用してさまざまなビルド構成(リリース、UATなど)を切り替えると、上記は正しく変更されます。ただし、TFS 2012を使用すると、誤って(Debugフォルダーを参照)評価されます(ビルド構成がDebugに設定されていない場合でも)
"C:\ Workspaces \ MyProject \ Dev \ Src \ MyProject.Database \ MyProject.Database.Config \ Debug \DeployCommand.cmd"
$(Configuration)マクロを正しく評価する他のC#プロジェクトがあります。
これを見た人はいますか?
visual-studio-2012 - VisualStudio2012データベースプロジェクト内のデフォルトのT-SQLペインビュー
Visual Studio 2012でデータベースプロジェクトを操作する場合、テーブルを追加または編集すると、VSはデフォルトで[デザインビュー]ペインになります。分割画面モードで作業できますが、T-SQLペインはデフォルトで下部ペインになります。
デザイナーではなくT-SQLを直接操作することを好むため、オブジェクトを操作するために、T-SQLペインを最上位のエディターにするように常に切り替えています。残念ながら、VSはこの設定を記憶していないため、テーブルを操作するたびに、T-SQLペインがデザイナーペインの下ではなく上に表示されるように変更する必要があります。
[ツール]->[オプション]でこの動作を制御する設定があるかどうかを確認しましたが、これまでのところ、そのような設定を見つけることができませんでした。私もこのトピックについていくつかのグーグル検索を行いましたが、この特定のケースに役立つものは何も見つかりませんでした。
これは私にとって何よりも厄介ですが、ペインを絶えず切り替えているので、VS、レジストリ、またはVSに私の好みを記憶させる他の構成ファイル内の設定を誰かが知っているかどうか疑問に思いますまたは、デフォルトでDesignerペインの上にあるT-SQLペインになりますか?
tfsbuild - TFS ビルドを使用してトリガーされたときに、Powershell で sqlpackage.exe の警告/エラーを抑制します。
dacpac と sqlpackage.exe、SSRS レポート、および Web サイトを使用して、データベースの変更を展開する自動展開スクリプトがあります。
コマンド ラインでスクリプトを実行すると、sqlpackage は次のメッセージを出力します。
オブジェクト [オブジェクト名] は、別の定義でデータベースに既に存在するため、変更されません。
出力はコンソールに黄色で表示され、警告であることを示します。デプロイは続行され、期待どおりに完了します。
ただし、TFS ビルドを介して同じスクリプトをトリガーすると、同じメッセージがビルド エクスプローラーに記録されますが、その横にエラー アイコンが表示されます。デプロイは引き続き続行され、自動テストが実行されますが、ビルド ステータスがチェックマークとバツ印の付いたアイコンに変わります。これは、ビルドが正常に完了したが、他のタスクが失敗したことを示します。
sqlpackage UnmodifiableObjectWarnings に提供できるパラメーターがあり、この種の警告を抑制するはずですが、このパラメーターにバグがあることを示す msdn の投稿があり、機能しません。
この警告が原因でビルド/デプロイが失敗することを望まないため、Powershell でこの種の警告をトラップして抑制するにはどうすればよいか考えています。ただし、他の完全に有効なエラーがある可能性があるため、sqlpackage の呼び出しからのすべてのエラー出力を抑制することはできません。
アップデート
ここの提案に従ってみました: https://serverfault.com/questions/340711/redirect-stderr-to-variable-in-powershell 、次のようなコードを使用してみました:
ただし、exe によって警告メッセージが返されるとすぐに、例外がスローされ、呼び出し元の関数によって処理され、展開は行われません。
ただし、次のように呼び出す場合:
つまり、出力をキャプチャする変数 $test がなければ、デプロイは正常に完了しますが、catch は引き続き同じ例外をキャッチします。変数の出力をキャプチャするとすぐに例外がスローされるのに、キャプチャしないと正常に完了した後に例外がキャッチされるのはなぜですか?