2021-01-01から1年間の記事一覧

メモ:互換性レベルは下位バージョンの動作検証には良くない

実働環境が古い SQL Server で手元には新しいのしかない時に、互換性レベル下げたらエラーになってくれるかなー?と思ってやってみたけどダメだった。 ALTER DATABASE 互換性レベル (Transact-SQL) - SQL Server | Microsoft Docs 互換性を 2014相当にしてる…

メモ:DacFx を .NET 6 で使用しようとすると、未だ preview 使わないとダメ

DacFx doesn't work on .NET 6 · Issue #33 · microsoft/DacFx · GitHub NuGet Gallery | Microsoft.SqlServer.DacFx 160.5323.3-preview より上のバージョン使ったらセーフ。

メモ:SELECT - INTO の指定先のテーブルの存在チェックはコンパイル時

1個のクエリ内で drop create で一時テーブル使い回ししたいなーと書いてたらエラーになったのでメモ。 こういうのがエラーになってクエリ自体実行されない。 drop table if exists #temptable select [Name] into #temptable from sys.tables select * from…

メモ:Oracle Cloud の DB に Azure Web Apps から接続する

メモ:App Service Plan は Basic 以上じゃないとダメだって。 https://blogs.oracle.com/database/post/connecting-azure-web-apps-to-oracle-autonomous-database

メモ: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…

メモ:Google.OrTools

NuGet Gallery | Google.OrTools 9.0.9048 About OR-Tools | Google Developers Vehicle Routing | OR-Tools | Google Developers

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 …

メモ:Azure SDK .NET スレッドセーフ

.NET Azure SDK Design Guidelines | Azure SDKs ✅ DO be thread-safe. All public members of the client type must be safe to call from multiple threads concurrently. Azure SDK for .NET でのスレッド セーフ | Microsoft Docs

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 …

メモ:Azure Cognitive Search デフォルトのアナライザー の ストップワード(1文字限定) を調べる

カスタムアナライザー使うのに ja.microsoft がどんなストップワード設定してるか確認用。 ※複数文字は日本語なので取り合えずいいや。 雑いけど、ひらがな1文字ずつに分かれるテキスト渡して消えたやつがストップワードだ!って感じで。 テキストの分析 (Az…

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

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

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

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

メモ:Swashbuckle Swagger で 40系の ProducesResponseType(typeof(void), ...) が ProblemDetails に変わる回避策

ProducesResponseType(typeof(void), ...) causes ApiExplorer to indicate the return type is ProblemDetails · Issue #7874 · dotnet/aspnetcore · GitHub 40系はデフォだと ProblemDetails Class (Microsoft.AspNetCore.Mvc) | Microsoft Docs になって…

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'かきくけこ') から ["あいうえお", "かきくけこ"] にしたい場合のクエリ。 参…