নিম্নলিখিত দেওয়া
-- table ddl
create table dbo.f_word(
sentence_id int NULL,
sentence_word_id int NULL,
word_id int NULL,
lemma_id int NULL,
source_id int NULL,
part_of_speech_id int NULL,
person_id int NULL,
gender_id int NULL,
number_id int NULL,
tense_id int NULL,
voice_id int NULL,
mood_id int NULL,
case_id int NULL,
degree_id int NULL,
citation nvarchar(100) NULL
);
-- create partition function
create partition function pf_f_word_source_id (int)
as range left for values
(
1,2,3,4,5,6,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23
);
-- create the partition scheme
create partition scheme ps_f_word as partition pf_f_word_source_id to
(
[primary],[primary],[primary],[primary],[primary],[primary],[primary],[primary],[primary],
[primary],[primary],[primary],[primary],[primary],[primary],[primary],[primary],[primary],
[primary],[primary],[primary],[primary],[primary],[primary]
);
-- partition the index
create unique clustered index cix_fword on dbo.f_word
(
source_id,
sentence_id,
sentence_word_id,
word_id,
lemma_id,
part_of_speech_id,
person_id,
gender_id,
number_id,
tense_id,
voice_id,
mood_id,
case_id,
degree_id
)
on ps_f_word (source_id);
-- swapin table ddl
create table dbo.f_word_swapin(
sentence_id int NULL,
sentence_word_id int NULL,
word_id int NULL,
lemma_id int NULL,
source_id int NULL,
part_of_speech_id int NULL,
person_id int NULL,
gender_id int NULL,
number_id int NULL,
tense_id int NULL,
voice_id int NULL,
mood_id int NULL,
case_id int NULL,
degree_id int NULL,
citation nvarchar(100) NULL
) on [primary];
-- create the same index on the swapin table
create unique clustered index cix_fword_swapin on dbo.f_word_swapin
(
source_id,
sentence_id,
sentence_word_id,
word_id,
lemma_id,
part_of_speech_id,
person_id,
gender_id,
number_id,
tense_id,
voice_id,
mood_id,
case_id,
degree_id
);
-- add check constraints WITH CHECK
ALTER TABLE dbo.f_word_swapin
WITH CHECK
ADD CONSTRAINT ck_f_word_swapin_lb
CHECK ( source_id > 12);
ALTER TABLE dbo.f_word_swapin
WITH CHECK
ADD CONSTRAINT ck_f_word_swapin_ub
CHECK ( source_id <= 13);
তারপরে, ডেটাটি চারপাশে সরিয়ে নিন:
-- switch data OUT of the partitioned table
ALTER TABLE dbo.f_word
SWITCH PARTITION 13 TO dbo.f_word_swapin;
-- attempt to switch data back IN
ALTER TABLE dbo.f_word_swapin
SWITCH TO dbo.f_word PARTITION 13;
নীচে "একই স্ক্রিপ্ট টেবিল হিসাবে ... তৈরি করুন" ডিডিএল ঠিক একই টেবিলের কাঠামোগুলি যাচাই করার জন্য রয়েছে।
/****** Object: Table [dbo].[f_word_swapin] Script Date: 9/10/2014 10:01:01 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[f_word_swapin](
[sentence_id] [int] NULL,
[sentence_word_id] [int] NULL,
[word_id] [int] NULL,
[lemma_id] [int] NULL,
[source_id] [int] NULL,
[part_of_speech_id] [int] NULL,
[person_id] [int] NULL,
[gender_id] [int] NULL,
[number_id] [int] NULL,
[tense_id] [int] NULL,
[voice_id] [int] NULL,
[mood_id] [int] NULL,
[case_id] [int] NULL,
[degree_id] [int] NULL,
[citation] [nvarchar](100) NULL
) ON [PRIMARY]
/****** Object: Table [dbo].[f_word] Script Date: 9/10/2014 10:09:43 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[f_word](
[sentence_id] [int] NULL,
[sentence_word_id] [int] NULL,
[word_id] [int] NULL,
[lemma_id] [int] NULL,
[source_id] [int] NULL,
[part_of_speech_id] [int] NULL,
[person_id] [int] NULL,
[gender_id] [int] NULL,
[number_id] [int] NULL,
[tense_id] [int] NULL,
[voice_id] [int] NULL,
[mood_id] [int] NULL,
[case_id] [int] NULL,
[degree_id] [int] NULL,
[citation] [nvarchar](100) NULL
)
GO
সুইচিং আউট ঠিক কাজ করে। সুইচিং ইন নিম্নলিখিত ত্রুটি উত্পাদন করে:
এমএসজি 4972, স্তর 16, রাজ্য 1, লাইন 1 ALTER TABLE SWITCH বিবৃতি ব্যর্থ হয়েছে। উত্স টেবিল 'গ্রীস.ডবো.ফ_ওয়ার্ড_স্বেপিন' এর সীমাবদ্ধতা বা পার্টিশন ফাংশন, সেই মানগুলিকে অনুমতি দেয় যা চেক সীমাবদ্ধতা বা লক্ষ্য টেবিল 'greek.dbo.f_word' তে পার্টিশন ফাংশন দ্বারা অনুমোদিত নয়।
চলমান:
select target_partition_id = $PARTITION.pf_f_word_source_id(source_id),
*
from dbo.f_word_swapin;
সমস্ত ডেটা পার্টিশন 13 এ ফিরে যাওয়া উচিত যাচাই করে।
আমি বিভাজনে আসলেই বেশ নতুন তাই আমি নিশ্চিত যে আমি জিনিসগুলি ভুলভাবে করছি, আমি এটি জানি না এটি কী।