microsoft / microsoft/sqlmanagementobjects
[Bug]: Script as Create does not provide valid script
まだ誰も着手していません。
- 主要言語
- C#
- スター
- 143
- フォーク
- 28
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Description
I cannot use Script as Create for tables in Azure SQL Database, as if I do I get errors as seen in the screenshot below.
Here is the original script:
CREATE TABLE transporter.CompanyProfile (
CompanyProfileId int NOT NULL CONSTRAINT PK_transporter_CompanyProfile PRIMARY KEY IDENTITY(1,1),
CompanyId int NOT NULL,
CONSTRAINT FK_CompanyProfile_CompanyId
FOREIGN KEY (CompanyId) REFERENCES transporter.Company(CompanyId),
ProfileId int NOT NULL,
CONSTRAINT FK_CompanyProfile_ProfileId
FOREIGN KEY (ProfileId) REFERENCES auth.Profile(ProfileId),
Active bit NOT NULL,
UpdatedDate DATETIME2 NOT NULL,
UpdatedBy int NOT NULL,
CONSTRAINT FK_CompanyProfile_UpdatedBy
FOREIGN KEY (UpdatedBy) REFERENCES auth.Profile(ProfileId),
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = transporter.CompanyProfileHistory));
Here is the script generated using Script as Create:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [transporter].[CompanyProfile](
[CompanyProfileId] [int] IDENTITY(1,1) NOT NULL,
[CompanyId] [int] NOT NULL,
[ProfileId] [int] NOT NULL,
[Active] [bit] NOT NULL,
[UpdatedDate] [datetime2](7) NOT NULL,
[UpdatedBy] [int] NOT NULL,
[ValidFrom] [datetime2](7) GENERATED ALWAYS AS ROW START NOT NULL,
[ValidTo] [datetime2](7) GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME ([ValidFrom], [ValidTo])
) ON [PRIMARY]
WITH
(
SYSTEM_VERSIONING = ON (HISTORY_TABLE = [transporter].[CompanyProfileHistory])
)
GO
ALTER TABLE [transporter].[CompanyProfile] ADD CONSTRAINT [PK_transporter_CompanyProfile] PRIMARY KEY CLUSTERED
(
[CompanyProfileId] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
ALTER TABLE [transporter].[CompanyProfile] WITH CHECK ADD CONSTRAINT [FK_CompanyProfile_CompanyId] FOREIGN KEY([CompanyId])
REFERENCES [transporter].[Company] ([CompanyId])
GO
ALTER TABLE [transporter].[CompanyProfile] CHECK CONSTRAINT [FK_CompanyProfile_CompanyId]
GO
ALTER TABLE [transporter].[CompanyProfile] WITH CHECK ADD CONSTRAINT [FK_CompanyProfile_ProfileId] FOREIGN KEY([ProfileId])
REFERENCES [auth].[Profile] ([ProfileId])
GO
ALTER TABLE [transporter].[CompanyProfile] CHECK CONSTRAINT [FK_CompanyProfile_ProfileId]
GO
ALTER TABLE [transporter].[CompanyProfile] WITH CHECK ADD CONSTRAINT [FK_CompanyProfile_UpdatedBy] FOREIGN KEY([UpdatedBy])
REFERENCES [auth].[Profile] ([ProfileId])
GO
ALTER TABLE [transporter].[CompanyProfile] CHECK CONSTRAINT [FK_CompanyProfile_UpdatedBy]
GO
Here are the errors when I run the generated script:
Steps to Reproduce
Scripts are provided above.
Affected Area
- Connection dialog (SQL Server | Azure browse/Fabric browse)
- Query results panel
- Query editor
- Object Explorer
- Table Designer
- Schema Compare
- Schema Designer
- Local SQL Server Container provisioning
- SQL database in Fabric provisioning
- GitHub Copilot integration
- Query Plan Visualizer
- Other (please describe below)
If you selected "Other", please describe the affected area
Generated Scripts
Environment Information
Visual Studio Code: Version 1.104.1 (Universal)
Extension SQL Server (mssql): v1.36.0
MacOS 15.6.1
Azure SQL
Confirmation
- I have searched existing issues and couldn't find a match
- I want to work on this issue
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
レポート内の元の CREATE TABLE スクリプトと生成された CREATE TABLE スクリプトを再現手順として使用し、Azure SQL のテンポラル テーブル向けの Script as Create 生成パスから開始します。生成された出力をソースと比較し、その後、修正されたスクリプトが主キー制約と外部キー制約を保持したまま正常に実行されることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- azure, csharp, sql
- 領域
- database, tooling
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100