.NET Core 2.0 の TransactionScope + SqlClient でハマってる。。

まだ対応してない?

using System;
using System.Data.SqlClient;
using System.Transactions;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            var connstr = @"~";
            using (var tran = new TransactionScope())
            using (var conn = new SqlConnection(connstr))
            {
                conn.Open(); // 例外発生!
            }
        }
    }
}
System.NotSupportedException: 'Enlisting in Ambient transactions is not supported.'

ScriptDom に Azure SQL DB / (DW?) 用に使えそうなオプションが増えてました

久々に ScriptDom のバージョンを上げてみたら、SqlEngineType が追加されてました。
NuGet Gallery | Microsoft.SqlServer.TransactSql.ScriptDom 14.0.3660.1

TSql130Parser, TSql140Parser に SqlEnginType が渡せるようです。

namespace Microsoft.SqlServer.TransactSql.ScriptDom
{
    public enum SqlEngineType
    {
        All = 0,
        Standalone = 1,
        SqlAzure = 2
    }
}

未だちゃんと動かなそうでしたが。

var azure = new TSql140Parser(false, SqlEngineType.SqlAzure);
IList<ParseError> azureErrors;
using (var sr = new StringReader(@"CREATE DATABASE hito 
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS   
( MAXSIZE = 500 MB, EDITION = 'standard', SERVICE_OBJECTIVE = 'S1' );")) {
  azure.Parse(sr, out azureErrors);
}
Console.WriteLine(azureErrors.Count); // 1
Console.WriteLine(azureErrors[0].Message); // Incorrect syntax near MAXSIZE.

SQL DB では使える CREATE DATABASE のオプションがエラーになってしまいました。。

T-SQL に TRANSLATE 文字列関数が追加されてた

たまたまドキュメントを眺めてて見つけたのでメモ
TRANSLATE (Transact-SQL) | Microsoft Docs

Oracle にはあったので追加されるのは助かりますね。

ちなみに Oracle でのよくある例

-- ぱぴぷぴぽぴぴぴ となる
select translate('パピプペポ', 'パピプペポ', 'ぱぴぷぺぽ') 
from dual

は、エラーになりました。

select translate('パピプペポ', 'パピプペポ', 'ぱぴぷぺぽ')
The second and third arguments of the TRANSLATE built-in function must contain an equal number of characters.

ちゃんと文字数が一致していないとダメなようです。

9/9(土) 第6回 関西DB勉強会 開催します!

今回も色んな DB の話しを用意しています!
kansaidbstudy.connpass.com

SQL Server は 2017 の Linux 絡みのお話しをして頂きます!

懇親会は勉強会会場でケータリングの予定です、こちらも是非宜しくお願いします。
kansaidbstudy.connpass.com

是非ご参加を~

Azure WebJobs で continuous WebJobs(継続的なジョブ)を使うときの注意メモ

Application settings(アプリケーション設定)で、Always On(常時接続)を有効にしますが、何も考えずにトップページをそのままにしていると Data Out の転送量が結構掛かるので気を付ける。
Azure の転送量課金は 料金 - 帯域幅 | Microsoft Azure
出ていく方には料金掛かるようになっています。*1

で、Always On にしていると、5分毎にトップページにリクエスト投げてるような動きになっているため、
約70KB(hostingstart.htmlのサイズ) * 60 / 5 = 約840KB/時間、約20MB/日、約600MB/月 の転送量が発生します。
必要な転送量なら良いのですが、正直これは無駄なので軽いトップページにする等した方が良さげ。

Web App 作成後、Always On 有効にしたもの
f:id:odashinsuke:20170809025916j:plain

hostingstart.html を削除したもの
f:id:odashinsuke:20170809025817j:plain

*1:月5GBまでは無料ですが

SQL Server 2017 RC2 が出ました!

リンク
SQL Server 2017 Release Candidate 2 (RC2) is now available | SQL Server Blog

前回(RC1)から2週間程度で出たので 2016 の時と似たような感じですねー。

2016 の時は 2週間間隔で RC 出て、最後から 1か月半空いて製品版でしたが、2017 はいつ出るのかなー?

https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/07/technical-overview-sql-server-2016-release-candidate-0/
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/18/sql-server-2016-release-candidate-1-now-available/
https://blogs.technet.microsoft.com/dataplatforminsider/2016/04/01/sql-server-2016-release-candidate-2-now-available/
https://blogs.technet.microsoft.com/dataplatforminsider/2016/04/15/sql-server-2016-release-candidate-3-now-available/
https://blogs.technet.microsoft.com/dataplatforminsider/2016/06/01/sql-server-2016-is-generally-available-today/