Heidisql: لا يعمل AUTO_INCREMENT على خادم MSSQL

تم إنشاؤها على ٣٠ أكتوبر ٢٠١٨  ·  5تعليقات  ·  مصدر: HeidiSQL/HeidiSQL

خطوات إعادة إنتاج هذه المشكلة

  1. إنشاء جدول على خادم SQL ؛
  2. إضافة عمود معرف ؛
  3. اضبط عمود المعرف على الزيادة التلقائية عن طريق التعيين الافتراضي على AUTO_INCREMENT ؛
  4. احفظ الجدول. قد يؤدي إلى إنشاء أو تحديث الجدول. هذا فشل.

السلوك الحالي

لا يقوم بإنشاء أو تعديل الجدول.
يعطي خطأ في جزء AUTO_INCREMENT من البيان.

سلوك متوقع

يجب أن تقوم بإنشاء أو تحديث الجدول.
لا ينبغي أن يعطي خطأ.

حل ممكن

بدلاً من استخدام AUTO_INCREMENT ، يتطلب خادم SQL IDENTITY (1،1).
الرقم الأول بين قوسين هو قيمة البداية ، والثاني هو الزيادة.
مثال:
إنشاء أشخاص طاولة (
ID int IDENTITY (1،1) PRIMARY KEY،
اسم varchar (255) NOT NULL
) ؛

بيئة

  • إصدار HeidiSQL:
    9.5.0.5315 ، أحدث إصدار ليلي. في الواقع ، لا أريد في الواقع استخدام بنية ليلية ، ولكن بنية مستقرة.
  • نظام ونسخة قاعدة البيانات:
    خادم SQL ، جميع الإصدارات.
  • نظام التشغيل:
    Windows 10 على العميل ، غير معروف على الخادم.

ال 5 كومينتر

هل هذا تغيير كبير؟ هل سيكون من السهل بالنسبة للعلاقات العامة الأولى؟

لدي نفس المشكلة.
هل هناك حل لهذه المشكلة؟

يا إلهي! إنه عام 2020 وما زال مفتوحًا. الرجاء guyz ، إصلاح هذا في أسرع وقت ممكن.
لمعلوماتك: أنا أستخدم HeidiSql v10.3

يجري أيضا في هذا اليوم. أحد الأسباب الوحيدة التي أضطر إلى فتح SSMS :(

فيما يلي نص برمجي لإنشاء جدول على MS SQL 12.0.5223.6 يوضح المشكلة:

CREATE TABLE [dbo].[User](
    [Username] [nvarchar](20) NOT NULL,
    [FullName] [nvarchar](50) NOT NULL,
    [EmailAddress] [nvarchar](100) NULL,
    [LastLoginDate] [datetime] NULL,
    [IsAdministrator] [bit] NULL,
    [Roles] [int] NOT NULL,
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [CreatedAt] [datetime2](7) NOT NULL,
    [CreatedBy] [nvarchar](20) NOT NULL,
    [ModifiedAt] [datetime2](7) NULL,
    [ModifiedBy] [nvarchar](20) NULL,
    [LastPortfolioId] [int] NULL,
 CONSTRAINT [PK__User__536C85E5B3CDBFE3] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[User] ADD  DEFAULT (getdate()) FOR [CreatedAt]
GO

ALTER TABLE [dbo].[User] ADD  DEFAULT (suser_sname()) FOR [CreatedBy]
GO

لا يكتشف HeidiSQL 10.3.0.5838 المفتاح الأساسي:
image

فيما يلي نص برمجي يحدد مؤشرات المفاتيح الأساسية في MS SQL (ربما ليست الإصدارات المبكرة جدًا من MS SQL):

select schema_name(tab.schema_id) as [schema_name], 
    tab.[name] as table_name, 
    pk.[name] as pk_name,
    col.name as col_name
from 
  sys.tables tab
  left outer join sys.indexes pk on tab.object_id = pk.object_id and pk.is_primary_key = 1
  left join sys.index_columns ic on ic.index_id = pk.index_id and ic.object_id = tab.object_id
  inner join sys.columns col on ic.object_id = col.object_id and ic.column_id = col.column_id
order by schema_name(tab.schema_id),
    tab.[name]
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات