SQL Server

SSMS 18.1 で Diagram が復活した

SSMS 18 で Diagram が無くなった - お だ のスペース で Diagram が無くなったって書いてましたが、18.1 で復活しました。 Download SQL Server Management Studio (SSMS) - SQL Server | Microsoft Docs New in this Release (SSMS 18.1) より抜粋 Databas…

SQL であるグループの中で最小のものを取得する (複数あっても1つにしたい)

質問されたので… create table [取引開始履歴] ( [取引先] nvarchar(20), [取引先営業所] nvarchar(20), [開始日] date not null ) insert into [取引開始履歴] values (N'Foo財閥', N'大阪', '2016-04-01'), (N'Foo財閥', N'東京第一', '2016-04-01'), (N'F…

SQL Server での更新ロックを使った排他制御

よくあるやつですが、諸々の事情で取り合えず書いときます。 めっちゃ簡略化したシナリオ 分離レベルはデフォルトの read committed 入庫と出庫 + 在庫を更新するケースで、 しかも update で現在値を計算するのではなく直接設定するケース。 ※update 在庫 s…

SQL Server 2019 の _UTF8 照合順序は日本語ではサイズ増える?

SQL Server 2019 CTP3.0 時点の情報です SQL Server 2019 の新機能 - SQL Server | Microsoft Docs 見てたら char/varchar でも UTF-8 がサポートされたよーってあったので見てみました。 照合順序と Unicode のサポート - SQL Server | Microsoft Docs より…

06/18(火) SQLWorld★大阪#50 開催します #sqlworld

令和最初の SqlWorld :: SQLWorld★大阪#50 開催します! 32回目の平日夜開催で、前回同様 ハンズオン 形式行う予定です。 【日時】 2019年06月18日(火曜日) 19:00~21:00 【イベント概要】 令和最初の SQLWorld、今回で32回目の平日夜開催~。今回も、みん…

SSMS 18 で Diagram が無くなった

追記:18.1 で復活しました SSMS 18.1 で Diagram が復活した - お だ のスペース SSMS 18.0 が GA しました。*1 Download SQL Server Management Studio (SSMS) - SQL Server | Microsoft Docs リリースノートの 「Deprecated and removed features in 18.0…

.NET Core の DacFx の bacpac 試してみた

.NET Core 2.2 のコンソールアプリなら、 NuGet Gallery | Microsoft.SqlServer.DACFx 150.4384.2-preview でシンプルな DB なら問題無く bacpac 取れた。 .NET Core 2.1 なら、幾つかのアセンブリが古いっぽいので、バージョン上げたら動いた。 System.Data…

.NET で SQL Server/Database のbacpac を取得する

質問されたので書いときます。 DacFx 使ってサクッと出来ますよ~。 NuGet Gallery | Microsoft.SqlServer.DacFx.x64 150.4384.2 var connstr = @"~"; var dac = new DacServices(connstr); dac.ExportBacpac(@"d:\TurorialDB.bacpac", "TutorialDB"); 細か…

6/8(土) 第10回 関西DB勉強会やります!

6月8日(土) やります! 今回も色んな DB のお話しがありますので、是非ご参加を~。 kansaidbstudy.connpass.com

メモ:コネクションプールを使ってる時の SqlConnection を Close した時の内部動作

GitHub 上でコード追っかけたのでメモ ※実行してトレースしたわけでは無いので間違ってるかも 生きてる SqlTransaction があっても、Rollback 呼んでそう。 SqlConnection.Close() で SqlConnection.CloseInnerConnection() https://github.com/dotnet/coref…

メモ:SQL Server 2019 Hybrid Buffer Pool

2019 の新機能見てて何やろ~?って思ったのでメモ。 Hybrid Buffer Pool - SQL Server | Microsoft Docs 2019 CTP2.1 から。 PMEM に データベース ファイル を置いてると、バッファープール に読み込まずに直接読むっぽい。 直接読むのは クリーン ページ …

メモ:create table で filtered な unique index を作る

ドキュメントの構文に載ってないけどなんか出来たのでメモ。 SQL Server での unique 制約は unique index で実現されてます。 なので、unique 制約を作る = unique index を作る です。 UNIQUE 制約を作る場合 Create Unique Constraints - SQL Server | Mi…

02/19(火) SQLWorld★大阪#49 開催します #sqlworld

2019年最初の SqlWorld :: SQLWorld★大阪#49 開催します! 31回目の平日夜開催で、前回同様 ハンズオン 形式行う予定です。 【日時】 2019年02月19日(火曜日) 19:00~21:00 【イベント概要】 2019年最初の SQLWorld、今回で31回目の平日夜開催~。今回も、…

複合主キーを代理キー(サロゲートキー)に変えると、外部キー制約が弱くなる時がある

外部キー制約が弱くなるってなんやって話しですが、分かりやすいように例を交えて 取引先と取引先組織が親子関係、注文には2つの組織(請求先組織, 出荷先組織)を持つとした場合に、 取引先組織を複合主キーのまま定義するとこんな感じ。 create table [取引…

Visual Studio の Database Project で Temporal Table 使ってると公開が失敗することがある

列の型を変えたり、Temporal Table が要らなくなって、定義から消した場合*1にやられる。。 Cannot change data types of a temporal table columns - Developer Community 回避方法は ↑ に書いてある通り、*.dbmdl 消したり、↓ のような alter で Temporal …

メモ:存在しない行を HOLDLOCK すると、Range でロックする

たまたま試す機会があったのでメモ。 テーブル ヒント (Transact-SQL) - SQL Server | Microsoft Docs には HOLDLOCK は SERIALIZABLE 相当と書かれていて、 SERIALIZABLE では、 SERIALIZABLE 分離レベルで実行しているトランザクションと同じセマンティク…

DACFX の .NET Core 版がぼちぼち出る?

DacFx .NET Core Support · Issue #20 · Microsoft/DACExtensions · GitHub 試してませんが preview あるようです。 NuGet Gallery | Microsoft.SqlServer.DACFx 150.4240.1-preview

SQL Server 2019 から sparkjava を実行してみた

SQL Server 2019 CTP2 で Java を動かしてみた - お だ のスペース で紹介した external_script で Java を呼べる機能を使って、Spark Framework: An expressive web framework for Kotlin and Java を実行してみました。 meetup app osaka@3 で Spark on SQ…

meetup app osaka@3 で Spark on SQL Server? という話ししました #meetupapp

なんか色々トラブった*1けど、無事やりきりました。 ざっくり解説すると、 SQL Server 2019 で Big Data Cluster が出て、Spark ジョブも叩けるよーからの、 SQL Server 2019 で追加された Java language extension in SQL Server 2019 - SQL Server Machine…

12/22(土) meetup app osaka@3 で SQL Server 2019 の話しします

今週土曜12/22 に meetup app osaka@3 - connpass で SQL Server 2019 の話しします。 といっても 15分程度なのでサラッと話す感じですが、内容は「えっ?」ってなるような物を用意しています。 人を選びそうなネタになっていますが、DB系の勉強会では無いの…

SQL Server 2019 CTP2 で Java を動かしてみた

SQL Server 2019 から external_script で Java が呼べるようになりました。 Java language extension in SQL Server 2019 | Microsoft Docs How to call Java from SQL | Microsoft Docs Java language extension in SQL Server 2019 | Microsoft Docs Java…

メモ:Tech Summit 2018 Day2

2日目~ 即実践! Azure SQL Database Managed Instance 移行 SQL Server 2008 から Azure SQL DB MI(Managed Instance) への移行ハンズオン 2008 のサポートがそろそろ切れるからなんかな? イベント全体的に 2008 どうにか使用感があった。 移行方法は ネ…

メモ:TechSummit 2018 Day1

Microsoft Tech Summit 2018 | インフラエンジニア、アーキテクト、IT IT 戦略にかかわる皆様の為の技術カンファレンス - Microsoft Events & Seminars 行ってきたのでメモ。 Key note Microsoft Tech Summit 2018 基調講演 (日本語通訳付き) | 日本マイ…

第9回 関西DB勉強会で SQL Server のお話ししてきました! #dbkan

第9回 関西DB勉強会 - connpass 「SQL Server のロック概要~初心者向け~」というタイトルで、SQL Server のロックについてお話ししました。 デモを中心にする予定でしたが、時間足らずでトランザクション分離レベルでのロック時間の変化は見せれずじまい。…

10/23(火) SQLWorld★大阪#48 開催します #sqlworld

SqlWorld :: SQLWorld★大阪#48 開催します。30回目の平日夜開催で、前回同様 ハンズオン 形式行う予定です。 【日時】 2018年10月23日(火曜日) 19:00~21:00 【イベント概要】 SQLWorld 30回目の平日夜開催~。今回も、みんなで SQL を書いてみようというハ…

いつの間にか SMO (SQL Server Management Objects) が .NET Core に対応してました

去年から対応してたみたいー。 NuGet Gallery | Microsoft.SqlServer.SqlManagementObjects 140.17283.0 PowerShell Core から叩くブログとかもありました。

Temporal Table に Retention Policy が追加されてました

2016 に追加された Temporal Table ですが、2017 では Retention Policy が追加されていました。 2016 で追加された時に、不要になった過去データはどうするかなー?っと思ってたのですが、2017 で履歴の保有期間を設定出来るようになり便利になりますね! …

PHP で SQL Server on Linux に接続するチュートリアル

Ubuntu でデモ環境を作るために、docs のをぽちぽち実行してたんですが、 Get started with SQL Server 2017 on Ubuntu | Microsoft Docs Linux and macOS Installation Tutorial for the Microsoft Drivers for PHP for SQL Server | Microsoft Docs GitHub…

メモ SQL Server への接続が暗号化されているかを確認する

昨日聞かれたのでちょろっと調べてみました。 まあ固いのは、通信の中身を見るのが確実ですね。 SQL Server の 動的管理ビュー(DMV) でも確認出来るようです。 sys.dm_exec_connections (TRANSACT-SQL) | Microsoft Docs ローカルの SQL Server に SSL証明書…

Microsoft MVP アワード (Data Platform) を受賞させていただきました

今回で6回目(7年目)の受賞になりました。 今後もより一層のコミュニティ活動/情報発信していきますので、SqlWorld :: ホーム 共々宜しくお願いします。 最近もうちょい情報発信しないとなーと思いつつも出来てないので、次はどうなることやら。。