mcpField
S
sql-server-2025

sql-server-2025

github.com/josiahsiegelデータ・データベース59256 回インストール19 週間前に更新
リポジトリ

sql-server-2025 について

SQL Serverの開発者や運用担当者向けに、SQL Server 2025、SqlPackage、データベースプロジェクトを扱うリファレンスです。バージョン状況、データ型、デプロイ、テスト、CI/CDの情報をまとめています。

主な機能

  1. 01SQL Server 2025の機能と状況
  2. 02SqlPackageの公開・診断コマンド
  3. 03VECTORとJSONのデータ型
  4. 04データベースプロジェクトとScriptDomの対応
  5. 05CI/CDのテストとデプロイ指針
  6. 06Fabricデータウェアハウスへのデプロイ例

活用シーン

  1. 01SQL Server 2025のアップグレードや機能の評価
  2. 02SqlPackageを使ったデータベースプロジェクトの公開
  3. 03データベースデプロイ向けCI/CDの計画
  4. 04SQL Server 2025構文の解析

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill sql-server-2025

インストール後、Claude Code で/sql-server-2025を入力して読み込まれたか確認します。

同梱ファイルreferences/sql-server-2025-features.md

詳細

🚨 重大なガイドライン

Windows のファイルパス要件

必須:Windows ではファイルパスに必ずバックスラッシュを使用してください

Windows で Edit または Write ツールを使用する場合、ファイルパスにはスラッシュ(/)ではなく、必ずバックスラッシュ(\)を使用してください。

例:

  • ❌ 誤り:D:/repos/project/file.tsx
  • ✅ 正しい:D:\repos\project\file.tsx

これは次の項目に適用されます:

  • Edit ツールの file_path パラメーター
  • Write ツールの file_path パラメーター
  • Windows システムでのすべてのファイル操作
ドキュメント作成のガイドライン

ユーザーから明示的に依頼されない限り、新しいドキュメントファイルを作成しないでください。

  • 優先事項:新しいドキュメントを作成するのではなく、既存の README.md ファイルを更新してください
  • リポジトリの整理:ユーザーから別途依頼されない限り、リポジトリのルートは README.md のみとし、整理された状態を保ってください
  • スタイル:ドキュメントは簡潔、明確、かつプロフェッショナルなものにし、AI が生成したような文体は避けてください
  • ユーザーの希望:ユーザーからドキュメント作成を明示的に依頼された場合にのみ、追加の .md ファイルを作成してください

SQL Server 2025 と SqlPackage 170.2.70 のサポート

概要

SQL Server 2025 は、ネイティブなベクトルデータベース機能、組み込みの AI モデル統合、地上からクラウドまでのセマンティック検索を備えた、エンタープライズ向けの AI 対応データベースです。

SqlPackage 170.2.70(2025 年 10 月 14 日)— SQL Server 2025 の完全なサポート、データ仮想化、Parquet ファイルの機能強化を備えた最新の製品版リリースです。

SqlPackage 170.x シリーズ(2025 年のリリース)

最新バージョン:170.2.70(2025 年 10 月 14 日)

2025 年の主なリリースは 3 つです:

  • 170.2.70 - 2025 年 10 月 14 日(現行)
  • 170.1.61 - 2025 年 7 月 30 日(データ仮想化)
  • 170.0.94 - 2025 年 4 月 15 日(SQL Server 2025 の初期サポート)
2025 年の主な機能

データ仮想化(170.1.61 以降):

  • Azure SQL Database のデータ仮想化オブジェクトをサポート
  • 外部データソースに対するインポート/エクスポート/抽出/発行操作
  • Azure Blob Storage を使用する Azure SQL Database の Parquet ファイルをサポート
  • CLR 型および 1 MB を超える LOB では BCP に自動的にフォールバック

新しいデータ型:

  • VECTOR - 半精度(2 バイト)浮動小数点数による最大 3,996 次元
  • JSON - Azure SQL Database のネイティブ JSON データ型

新しい権限(170.0 以降):

  • ALTER ANY INFORMATION PROTECTION - SQL Server 2025 および Azure SQL
  • ALTER ANY EXTERNAL MIRROR - Azure SQL および Fabric の SQL データベース
  • CREATE/ALTER ANY EXTERNAL MODEL - AI/ML モデル管理

デプロイオプション:

  • /p:IgnorePreDeployScript=True/False - デプロイ前スクリプトをスキップ
  • /p:IgnorePostDeployScript=True/False - デプロイ後スクリプトをスキップ
SqlPackage のコマンド
# Publish to SQL Server 2025
sqlpackage /Action:Publish \
  /SourceFile:Database.dacpac \
  /TargetServerName:server2025.database.windows.net \
  /TargetDatabaseName:MyDatabase \
  /TargetDatabaseEdition:Premium \
  /p:TargetPlatform=SqlServer2025  # New target platform

# Extract from SQL Server 2025
sqlpackage /Action:Extract \
  /SourceServerName:server2025.database.windows.net \
  /SourceDatabaseName:MyDatabase \
  /TargetFile:Database.dacpac \
  /p:ExtractAllTableData=False \
  /p:VerifyExtraction=True

# Export with SQL Server 2025 features
sqlpackage /Action:Export \
  /SourceServerName:server2025.database.windows.net \
  /SourceDatabaseName:MyDatabase \
  /TargetFile:Database.bacpac

ScriptDom バージョン 170.0.64

SQL Server 2025 の構文解析に対応する新しい ScriptDom バージョン:

// Package: Microsoft.SqlServer.TransactSql.ScriptDom 170.0.64

using Microsoft.SqlServer.TransactSql.ScriptDom;

// Parse SQL Server 2025 syntax
var parser = new TSql170Parser(true);
IList<ParseError> errors;
var fragment = parser.Parse(new StringReader(sql), out errors);

// Supports SQL Server 2025 new T-SQL features

Microsoft.Build.Sql 2.0.0 GA(2025 年)

重要な節目: Microsoft.Build.Sql SDK は 2025 年に一般提供(GA)となりました!

最新バージョン:2.0.0(製品版として利用可能)

プレビュー版からの破壊的変更:

  • SDK が製品環境で使用可能となり、すべての新しいデータベースプロジェクトに推奨されます
  • プレビュー版ではなくなりました
  • クロスプラットフォームを完全にサポート(Windows/Linux/macOS)
  • .NET 8 以降が必要です(プレビュー版では .NET 6 以降)
SQL Server 2025 のサポート

現在の状況: SQL Server 2025 のターゲットプラットフォームのサポートは、今後の Microsoft.Build.Sql リリース(2.0.0 以降)で追加される予定です。

SDK スタイルのプロジェクトでの回避策:


<Project Sdk="Microsoft.Build.Sql/2.0.0">
  <PropertyGroup>
    <Name>MyDatabase</Name>
    
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <TargetFramework>net8.0</TargetFramework>
    <SqlServerVersion>Sql160</SqlServerVersion>

    
    
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="Tables\" />
    <Folder Include="Views\" />
    <Folder Include="StoredProcedures\" />
  </ItemGroup>
</Project>
Visual Studio 2022 のサポート

要件: SDK スタイルの SQL プロジェクトには、Visual Studio 2022 バージョン 17.12 以降が必要です。

注: 従来の SQL プロジェクト(旧 SSDT)とのサイドバイサイドインストールはサポートされていません。

SQL Server 2025 のリリース状況

現在の状況:2025 年 10 月時点で、SQL Server 2025(17.x)は リリース候補(RC1) 段階です。パブリックプレビューは 2025 年 5 月に開始されました。

GA 予定日:2025 年 11 月 12 日(過去のリリースパターンに基づく — SQL Server 2019:11 月 4 日、SQL Server 2022:11 月 16 日)。Microsoft Ignite カンファレンス(2025 年 11 月 18~21 日)での発表が見込まれます。

まだ本番環境向けではありません:SQL Server 2025 はまだ一般提供されていません。説明されているすべての機能は、テスト目的に限り RC ビルドで利用できます。

SQL Server 2025 の新機能

エンジン機能の全カタログ(ネイティブのベクトルデータベース(AI/RAG ワークロード向けの DiskANN インデックス)、JSON の機能強化、正規表現、あいまい検索、変更イベントのストリーミング、セキュリティと機密度分類、パフォーマンス/インテリジェントクエリ処理の追加機能、T-SQL の改善、Always Encrypted の更新)は、references/sql-server-2025-features.md にあります。2025 へのアップグレードを計画する場合、または SSDT プロジェクトでこれらのエンジン機能を採用する場合は、そのリファレンスを読み込んでください。

SQL Server 2025 へのデプロイ

SqlPackage の使用
# Publish with 2025 features
sqlpackage /Action:Publish \
  /SourceFile:Database.dacpac \
  /TargetConnectionString:"Server=tcp:server2025.database.windows.net;Database=MyDb;Authentication=ActiveDirectoryManagedIdentity;" \
  /p:BlockOnPossibleDataLoss=True \
  /p:IncludeCompositeObjects=True \
  /p:DropObjectsNotInSource=False \
  /p:DoNotDropObjectTypes=Users;RoleMembership \
  /p:GenerateSmartDefaults=True \
  /DiagnosticsFile:deploy.log
MSBuild の使用

<Project>
  <PropertyGroup>
    <TargetConnectionString>Server=tcp:server2025.database.windows.net;Database=MyDb;Authentication=ActiveDirectoryManagedIdentity;</TargetConnectionString>
    <BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
    <TargetDatabaseName>MyDatabase</TargetDatabaseName>
    <ProfileVersionNumber>1</ProfileVersionNumber>
  </PropertyGroup>

  <ItemGroup>
    <SqlCmdVariable Include="Environment">
      <Value>Production</Value>
    </SqlCmdVariable>
  </ItemGroup>
</Project>
# Deploy using MSBuild
msbuild Database.sqlproj \
  /t:Publish \
  /p:PublishProfile=Database.publish.xml \
  /p:TargetPlatform=SqlServer2025

2025 年の CI/CD のベストプラクティス

主な原則

状態ベースのデプロイ(推奨):

  • ソースコードでデータベースの現在の状態を表します
  • すべてのオブジェクト(プロシージャ、テーブル、トリガー、ビュー)を個別の .sql ファイルに保存します
  • SqlPackage が増分スクリプトを自動生成します
  • マイグレーションベースのアプローチよりも推奨されます

テストと品質:

  • tSQLt - SQL Server のストアドプロシージャと関数の単体テスト
  • テスト結果は機械可読形式で出力します
  • テスト失敗時は即座に通知し、パイプラインを中断します
  • テストに失敗した場合は、デプロイを続行しないでください

セキュリティ:

  • CI/CD では Windows 認証を優先 します(平文のパスワードは避けてください)
  • 認証情報をソース管理にコミットしないでください
  • 接続文字列には Azure Key Vault または GitHub Secrets を使用します

バージョン管理:

  • すべてのデータベースオブジェクトをソース管理に保存します
  • テストスクリプトはバージョン管理し、Build ステップで実行します
  • チェックイン時にコメントを必須にします
  • カスタムのチェックインポリシーを設定します
GitHub Actions(2025 年のパターン)
name: Deploy to SQL Server 2025

on:
  push:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - name: Setup .NET 8
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: '8.0.x'

    - name: Install SqlPackage 170.2.70
      run: dotnet tool install -g Microsoft.SqlPackage --version 170.2.70

    - name: Build DACPAC
      run: dotnet build Database.sqlproj -c Release

    - name: Run tSQLt Unit Tests
      run: |
        # Run unit tests and capture results
        # Abort if tests fail
        echo "Running tSQLt unit tests..."
        # Add your tSQLt test execution here

    - name: Generate Deployment Report
      run: |
        sqlpackage /Action:DeployReport \
          /SourceFile:bin/Release/Database.dacpac \
          /TargetConnectionString:"${{ secrets.SQL_CONNECTION_STRING }}" \
          /OutputPath:deploy-report.xml \
          /p:BlockOnPossibleDataLoss=True

    - name: Publish to SQL Server 2025
      run: |
        sqlpackage /Action:Publish \
          /SourceFile:bin/Release/Database.dacpac \
          /TargetConnectionString:"${{ secrets.SQL_CONNECTION_STRING }}" \
          /p:TargetPlatform=SqlServer2025 \
          /p:BlockOnPossibleDataLoss=True \
          /DiagnosticsFile:publish.log \
          /DiagnosticsLevel:Verbose

    - name: Upload Artifacts
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: deployment-logs
        path: |
          publish.log
          deploy-report.xml
Azure DevOps
trigger:
- main

pool:
  vmImage: 'windows-2022'

steps:
- task: MSBuild@1
  displayName: 'Build Database Project'
  inputs:
    solution: 'Database.sqlproj'
    configuration: 'Release'

- task: SqlAzureDacpacDeployment@1
  displayName: 'Deploy to SQL Server 2025'
  inputs:
    azureSubscription: 'Azure Subscription'
    authenticationType: 'servicePrincipal'
    serverName: 'server2025.database.windows.net'
    databaseName: 'MyDatabase'
    deployType: 'DacpacTask'
    deploymentAction: 'Publish'
    dacpacFile: '$(Build.SourcesDirectory)/bin/Release/Database.dacpac'
    additionalArguments: '/p:TargetPlatform=SqlServer2025'

SqlPackage の新しい診断機能

# Enable detailed diagnostics
sqlpackage /Action:Publish \
  /SourceFile:Database.dacpac \
  /TargetServerName:server2025.database.windows.net \
  /TargetDatabaseName:MyDatabase \
  /DiagnosticsLevel:Verbose \
  /DiagnosticPackageFile:diagnostics.zip

# Creates diagnostics.zip containing:
# - Deployment logs
# - Performance metrics
# - Error details
# - Schema comparison results

Microsoft Fabric Data Warehouse のサポート

SqlPackage 162.5 以降の新機能: Microsoft Fabric の SQL データベースを全面的にサポートします。

Fabric のデプロイ:

# Deploy to Fabric Warehouse
sqlpackage /Action:Publish \
  /SourceFile:Warehouse.dacpac \
  /TargetConnectionString:"Server=tcp:myworkspace.datawarehouse.fabric.microsoft.com;Database=mywarehouse;Authentication=ActiveDirectoryInteractive;" \
  /p:DatabaseEdition=Fabric \
  /p:DatabaseServiceObjective=SqlDbFabricDatabaseSchemaProvider

# Extract from Fabric
sqlpackage /Action:Extract \
  /SourceConnectionString:"Server=tcp:myworkspace.datawarehouse.fabric.microsoft.com;Database=mywarehouse;Authentication=ActiveDirectoryInteractive;" \
  /TargetFile:Fabric.dacpac

# New permission: ALTER ANY EXTERNAL MIRROR (Fabric-specific)
GRANT ALTER ANY EXTERNAL MIRROR TO [FabricAdmin];

SQL Server 2025 のベストプラクティス

  1. ターゲットプラットフォームの指定を使用する:
<PropertyGroup>
  <TargetPlatform>SqlServer2025</TargetPlatform>
</PropertyGroup>
  1. ベクトル操作をテストする:
-- Verify vector support
SELECT SERVERPROPERTY('IsVectorSupported') AS VectorSupport;
  1. AI モデルのパフォーマンスを監視する:
-- Track model execution
SELECT
    model_name,
    AVG(execution_time_ms) AS AvgExecutionTime,
    COUNT(*) AS ExecutionCount
FROM sys.dm_exec_external_model_stats
GROUP BY model_name;
  1. 機密度分類を実装する:
-- Classify all PII columns
ADD SENSITIVITY CLASSIFICATION TO dbo.Customers.Email
WITH (LABEL = 'Confidential - GDPR', INFORMATION_TYPE = 'Email');

リソース

コメント