SQL Server

メモ:SqlDataReader.GetColumnSchema は データ読まないので明らかに暗黙の型変換でエラーが出る場合でもセーフ

タイトル長い… まあ当然といえば当然なんですが、明らかにダメなやつでも通るとちょっとびっくりする。。 例:文字型の列に 日付型のパラメータ渡す。 using Microsoft.Data.SqlClient; using System; namespace ConsoleApp1 { class Program { static void …

メモ:T-SQL ある範囲内での 小さい順に空き番を見つける

決められた範囲があって、その中で空いている最小の番号を取得するってクエリ。 例:40000~4000000 までの間で未使用の番号を少ない順に10個とる。 範囲用の表を作って存在しないデータ取得 with [範囲] as ( select cast(40000 as bigint) as [番号] union…

Internal retry logic providers in SqlClient の動作確認

SqlClient の内部再試行ロジック プロバイダー - ADO.NET Provider for SQL Server | Microsoft Docs を試したのでログ貼っとく。 環境は .NET 5.0 Microsoft.Data.SqlClient 3.0.0 SqlClient での構成可能な再試行ロジック構成ファイル - ADO.NET Provider …

xUnit.NET の パラレルテスト と SQL Server (Local DB) で bacpac から import のメモ

上手くいくかは未検証! データは、if exists drop database + import bacpac で考える。 ※楽だから Local DB 前提で書いたけど、Local DB じゃなくても問題無さそう。 テスト側ではトランザクション制御出来ない前提。 Web App とかで HTTP 跨ぐようなイメ…

メモ:TransactionScope の既定の分離レベルは Serializable

公式の ドキュメント を探す機会があったのでメモ。 トランザクション スコープを使用した暗黙的なトランザクションの実装 | Microsoft Docs TransactionScope 分離レベルの設定の箇所 から抜粋 既定では、トランザクションは Serializable に設定された分離…

.NET Core で SqlConnection の ConnectTimeout が 15未満に設定しても無視されてそう。

.NET Framework と .NET Core で動作が違う。 SQL Server 2019 Developer Edition (サービスは止めとく) .NET Core 5 / 3.1、.NET Framework 4.8 Microsoft.Data.SqlClient 3.0.0 なんか、.NET Core だと、既定値の 15 未満に設定しても、既定値の 15 で動い…

SqlParameter で ~char(max) の時の Size は -1

size は -1 を渡す。 公式ドキュメントが中々見つからないのが難点…。 大きい値 (max) データの変更 - ADO.NET | Microsoft Docs から抜粋 CREATE PROCEDURE GetDocumentSummary ( @DocumentID int, @DocumentSummary nvarchar(MAX) OUTPUT ) AS SET NOCOUNT…

メモ:T-SQL の TRIM を使って、前後の括弧とか囲ってる文字を取り除く

2017 から SQL Server にも TRIM (Transact-SQL) - SQL Server | Microsoft Docs が追加されてます。 それまでは、LTRIM (Transact-SQL) - SQL Server | Microsoft Docs、RTRIM (Transact-SQL) - SQL Server | Microsoft Docs を組み合わせるという面倒な事…

メモ:EF (Core) で IDbContextTransaction の Rollback は要る?

entity framework - DbContextTransaction Rollback - Stack Overflow ちゃんと Dispose してたら SQL Server 相手にしてる分には無くても良さげ。 他の DB は実装次第なんでちゃんとやった方が良いけど、ちゃんとやるのめんどくさい。。*1 *1:TransactionSc…

メモ:Application Insights で SQL Server のクエリを勝手に取る設定が変わってた

知らんうちに変わってた。 Azure Application Insights における依存関係の追跡 - Azure Monitor | Microsoft Docs SQL 呼び出しの場合、サーバーとデータベースの名前が常に収集され、収集された DependencyTelemetry の名前として保存されます。 "データ" …

再帰クエリで循環参照した時にどうなるのか?(SQL Server, PostgreSQL)

PostgreSQL で循環参照したらどうなるん?って聞かれたので。 PostgreSQL with recursive d as ( select 1 as id, 4 as parentid union select 2 as id, 1 as parentid union select 3 as id, 2 as parentid union select 4 as id, 3 as parentid ), cte as …

2/5(金) devblogラジオ vol.9 で DB の雑談します

明日ですが、 devblogラジオ vol.9 - connpass に参加します。 ムッシュ と 兄貴 とお話しするの久々なのでめっちゃ楽しみ! 夜ですけどお時間あるかたは是非ご参加を~。

ScriptDom で サブクエリを CTE に書き換えるサンプル(叩き台)

だいぶ昔に書いた SQL Server のバージョン毎の TSqlParser - お だ のスペース にコメントが付いてたので雑にサンプル。 yutap01 だいぶ昔の投稿についての質問になります。 よろしければお知恵を拝借したいのですが、 TSqlParserを使って、複雑なTSQLを複…

1/30(土) meetup app osaka@5 に参加します #meetupapp

meetup app osaka@5 - connpass このご時世なんで オンラインの ZOOM ですが、お時間があればぜひ~。 SQL DB をソースに Azure Cognitive Search を使うときのメモ - お だ のスペース や関係ない質問でも答えれる限り答えま~。 座談会っぽい感じみたいな…

SQL DB をソースに Azure Cognitive Search を使うときのメモ

Azure SQL Database のデータを Azure Cognitive Search で全文検索するときに見る資料とかメモ 兼 meetup app vol.5? の資料。 価格 Cognitive Search 料金 - Search | Microsoft Azure インデックス作るのに AI 使うと追加でお金掛かりそう。 AI エンリッ…

メモ:T-SQL FOR XML は XML にするから XML でエスケープ必要な文字がエスケープされる

メモ:T-SQL 単一列の結果表をシンプルな JsonArray にしたい - お だ のスペース で、XML にしたいわけじゃないのに FOR XML 使ってますが、こういう時に XML でエスケープ必要な文字があった場合困ることが起きます。 前回のデータを変えて試してみます。 …

メモ:T-SQL 単一列の結果表をシンプルな JsonArray にしたい

create table [データ] ( [Id] bigint not null identity(1, 1) primary key , [Name] nvarchar(20) not null ) go insert into [データ] ([Name]) values (N'あいうえお') , (N'かきくけこ') から ["あいうえお", "かきくけこ"] にしたい場合のクエリ。 参…

メモ:T-SQL OUTPUT 句使ったときに INTO 付けてないと TRIGGER あったら怒られる

OUTPUT 句 (Transact-SQL) - SQL Server | Microsoft Docs トリガー 使ってたら怒られたのでドキュメントのメモ。 INTO キーワードを指定せずに OUTPUT 句を指定すると、DML 操作を行った先では、その DML アクションに対して定義されたトリガーを有効化でき…

メモ:PowerShell 7 (Core) で bacpac を import する

NuGet Gallery | Microsoft.SqlServer.DACFx 150.4897.1 と NuGet Gallery | Microsoft.Data.SqlClient 2.0.1 が必要。 で、PowerShell 7 で Microsoft.Data.SqlClient を使うには、ちょい注意が。 PowerShell (7.0.2) で Microsoft.Data.SqlClient 2.0 を使…

Azure Pipelines の Windows Agent で SQL Server 2019 Local DB を使う

前にこんなの書いてたんですが、Pipelines に代わってから使うの初ということで試してました。 VSTS の ビルドで SQL Server LocalDB を使ってテストしたい - お だ のスペース んで、今の最新の Windows Agent でバージョン調べてみると… Microsoft SQL Ser…

メモ:T-SQL bit 型での order by

スカラー値を返すクエリを書いてて、bit 型の列が複数行返ってくるけど、true 優先で取りたい時に、bit 型そのままだと max、min 使えないので、order by で。 雑なクエリ例 select top(1) [flg] from ( select cast(0 as bit) as [flg] union all select ca…

DO's&DONT's リンク

Microsoft SQL Server Japan Support Team Blog が無くなって、Technet フォーラムに移ってますが DO's&DONT's を人に紹介する機会があったのでついでに直リンメモ。 空き番ありますが、投稿見つからないので移行されなかった? DO's&DONT's #1: やらない方…

08/29(土) OSC2020 Online/Kyoto で データベース座談会 をします!

OSC2020 Online/Kyoto で 関西DB勉強会として1枠頂き、データベース座談会 をさせていただきます。 データベース座談会 - セミナープログラム - オープンソースカンファレンス2020 Online/Kyoto MySQL、PostgreSQL、SQL Server とでちょっとした比較みたいな…

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

今回で8回目(9年目)の受賞になりました。 今後もより一層のコミュニティ活動/情報発信していきますので、SqlWorld :: ホーム 共々宜しくお願いします。 どんどん新しい製品、サービスが出てますがおいてかれないように頑張りま~。

メモ:SQL Server 共通テーブル式でリードが減るかの確認 (減らない)

WITH common_table_expression (Transact-SQL) - SQL Server | Microsoft Docs 試したバージョンは Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Editi…

メモ:Aテーブルに1行も無い時だけBテーブルから取得するクエリ

メモ 通常ケースのテーブルがあって、特定の時は上書きしたデータが欲しいってケースのクエリ。 通常、特定ともにmax1行の時は、単に両方 left join でつないで、coalesce(isnull) でOK。 SQL Server の例だと -- max1件のケース create table [通常] ( [種…

SQL Server スキーマ(Schema)指定無しの時のオブジェクトの検索順

調べる機会があったので。 On Default Schemas and "Search Paths" - SQL Server Science sql server - SQL default schema resolution in Stored Procedure - Stack Overflow Dude, where's my table? - Bob Beauchemin 幾つか記事はありますが、足りなかっ…

メモ:.NET 3.5 で使える Dapper のバージョン

.NET Core じゃなくて、昔の .NET Framework 3.5 の方。 調べる機会があったのでメモ。 NuGet Gallery | Dapper 1.42.0

メモ:SSMS でクエリの結果をカンマ区切りで出力する

CSVファイルに吐く場合は、 デフォルトの結果をグリッドに表示(Ctrl + D)で出力された結果を 右クリック => 結果に名前を付けて保存 で CSV に。 右クリックが面倒な人は、 メニューの ツール => オプション => クエリ結果 => SQL Server => 結果をテキスト…

メモ:全 Temporal Table を無効化するクエリ

Visual Studio の Database Project で Temporal Table 使ってると公開が失敗することがある - お だ のスペース で、度々引っかかるのでウンザリしてクエリ書いた。 declare @sql nvarchar(max) select @sql = concat(@sql, N'alter table ', [sys].[tables…