Mais conteúdo relacionado Semelhante a 開発者の方向けの Sql server(db) t sql 振り返り (20) Mais de Oda Shinsuke (20) 開発者の方向けの Sql server(db) t sql 振り返り11. SQL CLR
T-SQL ではなく、CLR(C# や VB.NET)
で、ストアドや関数、トリガー等を実装
出来るしくみ
SQL Server のプロセス内で実行される
プロセス間通信とかしないよ
実際にどれ位使われてるのかは不明。。
使ってる人います?
12. クエリ通知 (Query Notification)
ADO.NET で利用可能
SELECT / EXECUTE に対して設定可能
使える構文の制限がきつい
対象のデータが変更されると、結果が
SQL Server から PUSH されるイメージ
昔は ASP.NET の cache で使われてる感
じ(専用のクラスも用意されてた)
15. WITH CTE
CTE = Common Table Expression
一時的な結果セットに名前を付けたもの
CTE は複数作成出来る
同じクエリ内で複数回参照可能
UNION ALL で自己参照 (再帰CTE)
自己結合による階層構造や連番作成 等に
21. GROUP BY と PARTITON BY の違い
GROUP BY
集計関数で使用。結果セット全体を指定し
たグループで集計する。
結果セットもグループ単位になる
PARTITON BY
集計関数 / 順位付け関数 / (分析関数) で指
定したグループで関数を実行する。
結果セットはグループ単位にならず、全件
返る
33. GROUPING の強化(GROUP BY)
GROUPING SETS
UNION ALL と同じ結果
ROLLUP
ROLLUP (C1, C2, C3)
C1, C2, C3 | C1, C2 | C1 | () の4パターン の
UNION ALL
CUBE
CUBE (C1, C2, C3)
全組み合わせ 8パターン の UNION ALL
(3C3 + 3C2 + 3C1 + 3C0) = 8
42. 関数の追加
PARSE
文字列 => 日付/時刻 or 数値
.NET に依存 (culture 指定可)
TRY_~
PARSE / CONVERT / CAST
変換失敗で null
FORMAT
書式指定文字列を返す
.NET に依存 (culture 指定可)
52. Stretch Database
テーブルのデータを SQL DB に自動的に
移動
テーブル検索時に、透過的に SQL DB の
テーブルもリモートクエリにより検索
どっちにデータがあるか意識しなくてOK
フィルター述語により、移行対象のデータ
をフィルター可
SQL DB に移動したデータは変更不可
制限も色々と
56. Temporal Tables
ANSI SQL:2011 規格
テーブルの変更履歴を自動で取得、任意
のタイミング/期間のデータを検索可能
履歴テーブルに更新データを保持
期間指定の検索は透過的に行われる
通常の運用では履歴は過去のみ
来月社員増えるから先に登録して、来月から参照
可能みたいなのは無理ー