動くコード図鑑
$ ls -1 /library | wc -l → 619
触って動く、検証済みの正解集。
公開記事から抽出した全コードブロックを 1 つずつページ化。 ▶ ボタンで 実行ログを再生し、 さも今動いてるかのように出力を流す。

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
619 件namespace sqlserver_connection_demo.Models { public class User { public int ID { get; set; }
Modelを作る
【C#】Asp.net Core EFでSqlServerに対しマイグレーションをする方法未収録#89e3af841026
using Microsoft.EntityFrameworkCore; namespace sqlserver_connection_demo.Models { public class DemoContext : DbContext
Contextを作る
【C#】Asp.net Core EFでSqlServerに対しマイグレーションをする方法未収録#79dce8b7ef74
namespace sqlserver_connection_demo { public class Startup { public Startup(IConfiguration configuration)
Start.csを修正する
【C#】Asp.net Core EFでSqlServerに対しマイグレーションをする方法未収録#ec0b6d60debc
private SqlConnectionStringBuilder stringBuilder = new SqlConnectionStringBuilder() { InitialCatalog = "DemoDB", DataSource = "localhost", UserID = "sa",
Start.csを修正する
【C#】Asp.net Core EFでSqlServerに対しマイグレーションをする方法未収録#8e195404d5da
services.AddDbContext<DemoContext>(opt => { opt.UseSqlServer(stringBuilder.ToString()); });
Start.csを修正する
【C#】Asp.net Core EFでSqlServerに対しマイグレーションをする方法未収録#16ca3ab0fab2
private DataTable getDataTable() { var dt = new DataTable(); var idCol = dt.Columns.Add("ID"); var nameCol = dt.Columns.Add("氏名");
DataTableの定義
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#a4a95e25ff1d
private void Form1_Load(object sender, EventArgs e) { dataGridView1.DataSource = getDataTable(); }
DataGridViewのDataSourceに反映させる
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#90454beb1e12
private void Form1_Load(object sender, EventArgs e) { dataGridView1.DataSource = getDataTable(); // 列名を自由に変更する。
余談1:列名を変更したいならColumnNameのプロパティを触る
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#e971cd5ead3c
public class User { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; }
余談2:CustomClassもDataSourceにできます
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#ab4b87efdb29
private IEnumerable<User> GetUsers() { var user1 = new User(1, "鈴木 おさむ",22, "東京都世田谷区"); var user2 = new User(2, "高橋 つよし",25, "東京都葛飾区");
余談2:CustomClassもDataSourceにできます
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#5c9fd7e063bb
private void Form1_Load(object sender, EventArgs e) { //dataGridView1.DataSource = getDataTable(); //// 列名を自由に変更する。
余談2:CustomClassもDataSourceにできます
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#9e611e145e57
private void button1_Click(object sender, EventArgs e) { var data = (DataTable)dataGridView1.DataSource; dataGridView2.DataSource = data; }
DataGridViewをDataTableに変換して取得するには?
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#1d1e363b3ea6
private void button1_Click(object sender, EventArgs e) { var data = (DataTable)dataGridView1.DataSource; var newDt = data.Copy();
このままだと同じインスタンスになってるので、左右で同じ動きになってしまう。
【C#】DataGridViewにDataTable反映したり変換して取得したりする未収録#f5f19b5032c8
-- 既存行があるテーブルに NOT NULL + 定数デフォルトを足す CREATE TABLE dbo.受注 (受注ID int PRIMARY KEY, 金額 int); INSERT INTO dbo.受注 VALUES (1, 1000), (2, 2000); GO
▶ 実行可
1. NOT NULL + デフォルト値の組み合わせで挙動が割れる
SQL Server で本番テーブルにカラムを追加する時、業務SEが気をつける3つのこと#d2eedd1ebe08
-- 可変長NULLは即時・既存行のサイズも据え置き(値が入るまで増えない) ALTER TABLE dbo.受注 ADD 備考 varchar(200) NULL; -- computed 列は実体を持たず、読むたびに計算される(PERSISTED 指定時を除く) ALTER TABLE dbo.受注 ADD 税込 AS (金額 * 1.1);
▶ 実行可
3. 可変長・固定長・computed 列で挙動とサイズが変わる
SQL Server で本番テーブルにカラムを追加する時、業務SEが気をつける3つのこと#b63061dcf931
-- ステップ1: まず NULL 許可で追加(メタデータのみ・ロックは一瞬) ALTER TABLE dbo.受注 ADD 区分 tinyint NULL; GO -- ステップ2: デフォルト相当をバッチで段階的に埋める(大テーブルは分割して)
安全な手順 — 本番を止めずにカラムを足す3ステップ
SQL Server で本番テーブルにカラムを追加する時、業務SEが気をつける3つのこと未収録#1a85261c6347
declare curデータ cursor local for select CustomerName,age,address from customer
カーソルの具体的な構文
SQLServerでのカーソルの使い方と書き方!未収録#0076250abee3
while(@@fetch_status = 0) BEGIN -- ここに特定の処理を書く
カーソルの具体的な構文
SQLServerでのカーソルの使い方と書き方!未収録#804711e32c65
begin try begin transaction declare @CurName nvarchar(20),
カーソルの具体的な構文
SQLServerでのカーソルの使い方と書き方!未収録#7a18a9b55c22
-- ❌アンチパターン:カーソルで1行ずつUPDATE DECLARE @id INT, @flag CHAR(1); DECLARE c CURSOR FOR SELECT id, flag FROM target_table WHERE status = 0; OPEN c; FETCH NEXT FROM c INTO @id, @flag;
1.一括UPDATE / INSERT
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)未収録#2a730dcef025
-- ❌カーソル+変数累積 DECLARE @total DECIMAL(18,2)= 0; -- ...カーソル省略... SET @total = @total + @amount; -- ✅ GROUP BY一発
▶ 実行可
2.集計(SUM / COUNT / AVG)
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)#003642727eff
-- ✅ウィンドウ関数で一発 SELECT customer_id, purchase_date, amount,
▶ 実行可
3.ランキング(ROW_NUMBER / RANK)
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)#26525d4eb78c
-- ✅ CASE WHEN一発 UPDATE customer_master SET grade = CASE WHEN total_amount >= 1000000 THEN 'A' WHEN total_amount >= 500000 THEN 'B'
5.条件分岐UPDATE
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)未収録#dae92f20fbdd
-- ✅カーソル基本テンプレ DECLARE @table_name SYSNAME; DECLARE @sql NVARCHAR(MAX); DECLARE meta_cursor CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
▶ 実行可
カーソルの正しい書き方(DECLARE〜DEALLOCATEのテンプレ)
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)#50ab94bf4bc6
-- ❌重いデフォルト(GLOBAL / KEYSET /更新可能) DECLARE c CURSOR FOR SELECT id FROM big_table; -- ✅軽量カーソル(LOCAL / FAST_FORWARD / READ_ONLY) DECLARE c CURSOR LOCAL FAST_FORWARD READ_ONLY FOR SELECT id FROM big_table;
性能落とし穴— FAST_FORWARD READ_ONLY LOCALの意味
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)未収録#4a5ae3f957e0
// ✅ C#側でループする(DataReader版) using (var conn = new SqlConnection(_connectionString)) using (var cmd = new SqlCommand("SELECT id, name FROM target_table WHERE status = 0", conn)) { conn.Open();
C#側との連携— DataReaderでクライアント側ループに寄せる選択肢
SQL Server のカーソルを使うべきタイミングと書き方(業務SE現場の判断軸)未収録#adcfd19ba723
SET SHOWPLAN_TEXT ON; GO SELECT * FROM dbo.tmp_orders WHERE customer_id = 1; GO SET SHOWPLAN_TEXT OFF;
▶ 実行可
SET SHOWPLAN_TEXTで実行計画を取る
SQL Server 実行計画の読み方 — Estimated vs Actual で業務SE が最初に見る5箇所#73565946edca
--準備:通常テーブル+インデックス+ 1万件投入+統計更新 IF OBJECT_ID('dbo.tmp_orders','U')IS NOT NULL DROP TABLE dbo.tmp_orders; CREATE TABLE dbo.tmp_orders (id INT IDENTITY PRIMARY KEY, customer_id INT, amount INT); CREATE INDEX IX_customer ON dbo.tmp_orders(customer_id);
▶ 実行可
ハンズオン#1 — Index Seekが出るケース
SQL Server 実行計画の読み方 — Estimated vs Actual で業務SE が最初に見る5箇所#862ed5c3d05c
|--Nested Loops(Inner Join, OUTER REFERENCES:([id])) |--Index Seek(OBJECT:([IX_customer]), SEEK:([customer_id]=(1))) |--Clustered Index Seek(OBJECT:([PK__tmp_orders]), SEEK:([id]=[id])LOOKUP)
ハンズオン#1 — Index Seekが出るケース
SQL Server 実行計画の読み方 — Estimated vs Actual で業務SE が最初に見る5箇所未収録#baf135028100
IF OBJECT_ID('dbo.tmp_products','U')IS NOT NULL DROP TABLE dbo.tmp_products; CREATE TABLE dbo.tmp_products (id INT IDENTITY PRIMARY KEY, name NVARCHAR(50), price INT); INSERT INTO dbo.tmp_products (name, price)VALUES (N'apple', 100),(N'banana', 200),(N'cherry', 300),(N'durian', 400);
ハンズオン#2 — Clustered Index Scanが出るケース
SQL Server 実行計画の読み方 — Estimated vs Actual で業務SE が最初に見る5箇所未収録#6a3025feb9a9