きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

SQL Server

DacFxで差分更新スクリプトを取得する際に特定のオブジェクトを除外する

更新用T-SQLスクリプト生成時に特定のオブジェクトを除外したい 先日書いたエントリ、 kiyokura.hateblo.jp ……の補足情報です。 特定のオブジェクトを更新スクリプトに含めたくない場合もあるのではないかと思います。私はあります。 DaxFxのSchemaCompariso…

DacFxを使って(C#で書いたコードを動かして)SQL Serverの差分更新スクリプトを取得する

Visual StudioのアドオンSQL Server Data Tools(以下SSDT)の機能に「スキーマ比較」ツールがあります。 これは大雑把に以下のような機能を持っています。 任意の "SQL Server データベースプロジェクト(以下DBプロジェクト)" / "(オンライン状態の)デ…

SQL Server Data Toolsのユニットテスト実行前にLocalDBのインスタンスを破棄・再作成する

SQL Server Data Tools (SSDT)のユニットテスト機能ネタです。 テスト実行前の自動デプロイは便利だが失敗するケースがある 以前の記事(これとかこれ)でも触れた、SSDTの ユニットテスト実行前にDBインスタンスに自動でデプロイを行う機能 は非常に便利で…

SQL Server LocalDBのインスタンスを削除してもユーザーデータベースのファイルが残る

TL;DR SQL Server Express LocalDBのインスタンスをSQL Server Data Tools (SSDT)のSQL Server オブジェクトエクスプローラーやコマンドラインユーティリティー SqlLocalDb.exeで削除すると、ユーザーデータベースのmdf/ldfファイルは残る この状態で同名の…

真・SQL Server Data Toolsのユニットテスト実行前に複数DBにデプロイする

前回の続きです。 前回のエントリに対して、@ahiru_sp さんからアドバイスいただきました。 これ、DatabaseTestService の派生クラスを作って、引数ありのDeployDatabaseProject呼ぶのが正攻法?かと思ったけど、引数になに指定すればいいのか分からんかった…

SQL Server Data Toolsのユニットテスト実行前に複数DBにデプロイする

SQL Server Data Tools (SSDT)のユニットテスト機能では、テスト実行前にソリューション内のデータベースプロジェクトをテスト実行対象のデータベースに自動でデプロイしてくれる機能があります。 これは非常に便利な機能です。しかし、複数のデータベースに…

SSDTの「スナップショット プロジェクト」機能は割と使える気がしました

私はSSDT(SQL Server Data Tools)を普段から使っているのですが、多機能なこともあり普段使ってない機能はまったく触れずに過ごしています。そのため、”実はよく知らない機能”がまだまだあります。 先日不意に、ソリューションエクスプローラーのコンテキス…

SSDTのあまり知られてない(かもしれない)機能『データ比較』ツールは便利

本エントリはVisual Studio / Visual Studio Code Advent Calendar 2015 14日目のエントリです SQL Server Data Tools に含まれる「データ比較」ツール SQL Server Data Tools(SSDT)に含まれる機能の一つに、『データ比較』ツール というものがあります。 SQ…

中国地方DB勉強会で「プロジェクト指向オフライン データベース開発」のお話をさせていただきました

OSC 2015 広島の翌日、同じ会場で開催された第十一回 中国地方DB勉強会 in 広島で、『SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話』というタイトルでお話させていただきました。 SQL Server のプロジェクト指向オフライン デ…

SSDTを使ったDBユニットテストのメモ:プロジェクト指向のデータベース開発の概要

SQL Server Data Tools (SSDT) ってなんだ SQL Server Data Tools (SSDT) とはMicrosoft から無償で提供されているVisual Studio用のアドオンです。名前から推測できる通り、SQL Server を対象としてデータベースの開発のための機能を提供してくれます。 SSD…

LocalDB に接続するとき場合の接続のプロパティの設定

ちょっと間が空くと忘れて悩むのでメモ。 Visual Studioで新規に接続を作成する際、LocalDB のデータベースを利用する際に、接続プロパティダイアログに設定する内容は以下の通り。 データソースMicrosoft SQL Server (SqlClient) サーバー名<SQL Server オブジェクトエクスプローラーで表示されている名称> 例:(localdb)\</sql>…

テーブル値パラメータについて少し整理とメモ その3・動的SQL編

id:sady_nitroさん! 先日エントリに挙げていたこの件!パラメタライズドな動的SQLで正しく型を指定してあげると、行けました! 【SQLServer】動的SQLとテーブル値変数は相性が悪い - Jack of all tradessadynitro.hatenablog.jp 何のこと? 詳細は上記のid:…

テーブル値パラメータについて少し整理とメモ その2・Dapper編

前回 『テーブル値パラメータについて少し整理とメモ - きよくらの備忘録』の続きです。 前回は基本ということで、System.Data.SqlClient、つまり巣のADO.NETでやってみました。が、実際にはORMやMicroORMを利用することが大半でしょう。ということで、私が…

テーブル値パラメータについて少し整理とメモ

SQL Serverに対してアプリケーションから複数行のデータを渡す時に利用できる仕組みとして、テーブル値パラメータ (Table-Valued Parameters / TVPs) があります。 『アプリケーションからクエリを発行する際に配列を渡したい』と思った時に等にも利用できる…

SSMSで「エラー メッセージ: ファイルがあります」になってクエリが実行できなくなったら

SQL Server Management Studio (SSMS) からクエリを実行しても、エラーが出て結果が得られないという事象に遭遇しました。 (SSMSのバージョンは2014 , 接続先は SQL Server 2014 や Azure SQL Database等) こんな感じです。 エラーメッセージが「バッチの…