"টেবিলটি পরিবর্তন করার সময় 8074 মাপের সারি তৈরি করা যায় না যা অনুমোদিত 6060 এর সর্বোচ্চ সারি আকারের চেয়ে বড়"


18

আমি একটি টেবিলের একটি কলাম পরিবর্তন করার চেষ্টা করছি। বিদ্যমান সারণীটি এরকম:

CREATE TABLE [dbo].[table](
   [id1] [int] NOT NULL,
   [id2] [int] NOT NULL,
   [id3] [int] NOT NULL,
   [name] [nvarchar](255) NOT NULL,
   [id4] [int] NOT NULL,
   [xmlData] [xml](CONTENT [dbo].[xml_schema]) NULL,
   [booleanData1] [bit] NOT NULL,
   [notes] [varchar](4096) NULL,
   [id5] [int] NULL,
   [booleanData2] [bit] NULL,
   [id6] [int] NULL,

   CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED 
   ([id1] ASC, [id2] ASC, [id3] ASC)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

এখন আমি এই টেবিলটিতে এই স্ক্যুয়ালটি কার্যকর করার চেষ্টা করছি:

ALTER TABLE [table] ALTER COLUMN [xmlData] XML

যাতে আমি এক্সএমএল স্কিমাটি ড্রপ করে এটিকে নতুন দিয়ে প্রতিস্থাপন করতে পারি।

তবে আমি এই ত্রুটিটি পাচ্ছি:

8074 আকারের একটি সারি তৈরি করা যায় না যা 8060 এর অনুমোদিত সারি আকারের চেয়ে বড়।

কেউ কি আমাকে বলতে পারেন এখানে সমস্যা কি?

উত্তর:


24

আপনি যদি এই টেবিলের পূর্বে কলামগুলি সরিয়ে ফেলেছেন বা সংশোধন করেছেন, তবে এই অপারেশনটি সফল হওয়ার আগে আপনাকে স্থান পুনরায় দাবি করতে হবে। এসকিউএল সার্ভার সর্বদা / সাধারণত অবিলম্বে বাদ পড়া বা পরিবর্তিত কলামগুলির জন্য স্থান পুনরায় দাবি করে না।

পূর্ববর্তী ক্রিয়াকলাপগুলি চলক-দৈর্ঘ্যের কলামগুলির সমস্ত অপসারণ (বা পরিবর্তন) হলে জারি DBCC CLEANTABLEকরা যথেষ্ট হবে ought অন্যথায়, আপনাকে টেবিলটি পুনর্নির্মাণ করতে হবে। ক্লাস্টারড ইনডেক্স পুনর্নির্মাণের মাধ্যমে আপনি এটি করতে পারেন:

ALTER INDEX PK_table
ON dbo.table
REBUILD 
WITH (ONLINE = ON); -- Enterprise only, optional
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.