সারণীতে পরিচয় কলামের জন্য একটি সুস্পষ্ট মান কেবল তখনই নির্দিষ্ট করা যেতে পারে যখন কোনও কলাম তালিকা ব্যবহার করা হয় এবং আইডিএনটিটিআইপিএসআরটি এসকিউএল সার্ভারে চালু থাকে


187

আমি এই কোয়েরিটি করার চেষ্টা করছি

INSERT INTO dbo.tbl_A_archive
  SELECT *
  FROM SERVER0031.DB.dbo.tbl_A

আমি দৌড়ানোর পরেও

set identity_insert dbo.tbl_A_archive on

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

'Dbo.tbl_A_archive' টেবিলের পরিচয় কলামের জন্য একটি স্পষ্ট মান কেবল তখনই নির্দিষ্ট করা যেতে পারে যখন কোনও কলাম তালিকা ব্যবহার করা হয় এবং IDENTITY_INSERT চালু থাকে।

tbl_Aসারি এবং প্রস্থে একটি বিশাল টেবিল, অর্থাৎ এটিতে প্রচুর কলাম রয়েছে। আমি সমস্ত কলাম ম্যানুয়ালি টাইপ করতে চাই না। আমি কীভাবে এটি কাজ করতে পারি?


আমি ইতিমধ্যে উপায় দ্বারা একটি লিঙ্কযুক্ত সার্ভার সেটআপ করেছি!
jhowe

উত্তর:


78

সারসংক্ষেপ

এসকিউএল সার্ভার আপনাকে কোনও পরিচয় কলামে একটি সুস্পষ্ট মান সন্নিবেশ করতে দেয় না যদি আপনি কলামের তালিকা ব্যবহার না করেন। সুতরাং, আপনার নিম্নলিখিত বিকল্প রয়েছে:

  1. একটি কলাম তালিকা তৈরি করুন (ম্যানুয়ালি বা সরঞ্জাম ব্যবহার করে, নীচে দেখুন)

অথবা

  1. পরিচয় কলাম করা tbl_A_archiveএকটি নিয়মিত, অ পরিচয় কলাম: আপনার টেবিল একটি সংরক্ষণাগার টেবিল এবং আপনি সবসময় পরিচয় কলামের জন্য একটি সুনির্দিষ্ট মান উল্লেখ করেন, কেন আপনি এমনকি একটি পরিচয় কলাম প্রয়োজন? পরিবর্তে একটি নিয়মিত int ব্যবহার করুন।

সমাধান 1-এ বিশদ

পরিবর্তে

SET IDENTITY_INSERT archive_table ON;

INSERT INTO archive_table
  SELECT *
  FROM source_table;

SET IDENTITY_INSERT archive_table OFF;

আপনার লিখতে হবে

SET IDENTITY_INSERT archive_table ON;

INSERT INTO archive_table (field1, field2, ...)
  SELECT field1, field2, ...
  FROM source_table;

SET IDENTITY_INSERT archive_table OFF;

field1, field2, ...আপনার টেবিলগুলিতে সমস্ত কলামের নাম সহ । যদি আপনি সেই কলামগুলির তালিকাটি স্বয়ংক্রিয়ভাবে তৈরি করতে চান তবে ডেভের উত্তর বা আন্দোমারের উত্তরটি একবার দেখুন


সমাধান 2 সম্পর্কিত বিশদ

দুর্ভাগ্যক্রমে, একটি পরিচয়-ইন-কলামের "পরিচয় কলামের" ধরণটি কেবল অ-পরিচয় ইন্টি কলামে পরিবর্তন করা সম্ভব নয়। মূলত, আপনার নিম্নলিখিত বিকল্পগুলি রয়েছে:

  • সংরক্ষণাগার সারণীতে এখনও ডেটা না থাকলে কলামটি ফেলে দিন এবং পরিচয় ছাড়াই একটি নতুন যুক্ত করুন।

অথবা

  • আপনার সংরক্ষণাগার সারণিতে পরিচয় কলামের Identity Specification/ (Is Identity)সম্পত্তি সেট করতে এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও ব্যবহার করুন No। পর্দার আড়ালে, এটি সারণীটি পুনরায় তৈরি করতে এবং বিদ্যমান ডেটা অনুলিপি করার জন্য একটি স্ক্রিপ্ট তৈরি করবে, সুতরাং এটি করতে আপনাকে আপনার Tools/ Options/ Designers/ Table and Database Designers/ আনসেট করতে হবে Prevent saving changes that require table re-creation

অথবা


1
আপনার নীচের সমাধানের জন্য: কলামটিতে যদি "পরিচয় (1, 1)" বা এর মতো কিছু থাকে তবে তাকে এটি অস্থায়ীভাবেও সরিয়ে ফেলতে হবে।
আলেকসান্দার খোমেঙ্কো

1
@ আলেকসান্দ্রকোমেনকো: হ্যাঁ, " আমি এটি একটি নিয়মিত ( অ-পরিচয় ) ইন কলাম তৈরি করে " বলতে চাইছিলাম ।
হেইনজি

1
বিভ্রান্তির জন্য দুঃখিত. আমি আসলে বোঝাতে চেয়েছিলাম যে তাকে অটো-ইনক্রিমেন্ট সম্পত্তিও মুছে ফেলতে হবে। এসকিউএল-সার্ভারের ক্ষেত্রে এটি "পরিচয় (1, 1)" কল করে - আপনার উত্তর একদম ঠিক। তবে মাইএসকিউএল এবং ওরাকল এর জন্য আরও একটি কমান্ড রয়েছে (এবং এটি অ-স্পষ্ট হয়ে ওঠে, দয়া করে w3schools.com/sql/sql_autoincrement.asp দেখুন )
আলেকসান্ডার খোমেঙ্কো

2
এটি বিস্তারিত অভাব। আমি বুঝতে পারি এটি কারও কাছে রোট হতে পারে তবে এটি অন্যের কাছে বোকামি
ডিজে।

1
@ ডিজে: আমি কিছু বিশদ যুক্ত করেছি।
হেইনজি

332
SET IDENTITY_INSERT tableA ON

আপনার INSERT বিবৃতিটির জন্য আপনাকে একটি কলাম তালিকা তৈরি করতে হবে:

INSERT Into tableA ([id], [c2], [c3], [c4], [c5] ) 
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB

"টেবিলের মধ্যে অন্তর্ভুক্ত করুন নির্বাচন করুন ........" পছন্দ করেন না

SET IDENTITY_INSERT tableA OFF

17
+1 ... আপনার কেবল ক্যোয়ারির SELECT ধারাটিতে সুস্পষ্ট কলামগুলির প্রয়োজন। আপনি ক্যোয়ারির ইনসার্ট ধারাটিতে একটি নক্ষত্র রাখতে পারেন
ম্যাকগাইভার

8
... যদি না লক্ষ্যটির একটি পরিচয় কলাম না থাকে এবং উত্স সারণীতে একটি পরিচয় কলাম না থাকে
ম্যাকগাইভার

1
এই উত্তরটি হেইনজির চেয়ে কিছুটা স্পষ্ট কারণ এটি সেট পরিচয়পত্রের নাম উল্লেখ করেছে
মার্টি

4
+1 একটি কবজ মত কাজ করে! তবে, "আপনি ক্যোয়ারির INSERT ধারাতে একটি নক্ষত্র রাখতে পারেন" এখানে কাজ করবে না।
শাই অ্যালন

1
আমি এই ত্রুটিটি পেয়েছি যখন নির্বাচিত ধারাটিতে কলামগুলি গন্তব্য সারণির সাথে মেলে না। এটি নিশ্চিত করে, সন্নিবেশটি আমার পক্ষে কাজ করেছে
জোস

39

শুধু টেবিল ডান-ক্লিক করুন - আপনি SQL সার্ভার ম্যানেজমেন্ট স্টুডিও ব্যবহার করেন, তাহলে আপনি কলাম তালিকা নিজেকে টাইপ করতে হবে না অবজেক্ট এক্সপ্লোরার এবং পছন্দ করে নিন স্ক্রিপ্ট টেবিল হিসাবে > - নির্বাচন > - নতুন কোয়েরি সম্পাদক উইন্ডো

আপনি যদি না হন তবে এর অনুরূপ একটি ক্যোয়ারী একটি সূচনা পয়েন্ট হিসাবে সহায়তা করবে:

SELECT SUBSTRING(
    (SELECT ', ' + QUOTENAME(COLUMN_NAME)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'tbl_A'
        ORDER BY ORDINAL_POSITION
        FOR XML path('')),
    3,
    200000);

2
এটি একটি চলকতে নির্বাচন করা যেতে পারে এবং ডায়নামিক এসকিউএল কোয়েরিতে ব্যবহৃত হতে পারে। আপনি আমার দিন বাঁচিয়েছেন। অনেক ধন্যবাদ!
পাওয়েল সিওচ

1
ধন্যবাদ! আমি এটি দিয়ে এটি তৈরি করেছি gist.github.com/timabell/0ddd6a69565593f907c7
টিম আবেল

কি দারুন. আমি আমার জিজ্ঞাসাটি গতিশীলরূপে গড়ে তুলতে মরিয়া হয়ে এই খুঁজছিলাম। এখানে এটি দেখে অবাক। ধন্যবাদ বন্ধু.
ইয়াসিন বিলির

22

হাইঞ্জির উত্তরের সাথে একমত প্রথম দ্বিতীয় বিকল্পের জন্য, এখানে একটি কোয়েরি যা একটি টেবিলের কমা-বিচ্ছিন্ন কলামগুলির তালিকা তৈরি করে:

select name + ', ' as [text()] 
from sys.columns 
where object_id = object_id('YourTable') 
for xml path('')

বড় টেবিলগুলির জন্য, এটি টাইপিংয়ের অনেক কাজ বাঁচাতে পারে :)


ধন্যবাদ, সত্যিই সহায়ক। :)
চিরাগ ঠাকর

কখনও কখনও আপনার কেবল একটি বাস্তব সমাধান প্রয়োজন। ধন্যবাদ!
টোবিয়াস

15

যদি "সংরক্ষণাগার" টেবিলটি আপনাকে প্রধান টেবিলের হুবহু অনুলিপি হিসাবে বোঝানো হয় তবে আমি কেবলমাত্র আপনাকে পরামর্শ দেব যে আপনি এই আইডিটি একটি সনাক্তকারী কলাম remove এইভাবে এটি আপনাকে sertোকাতে দেবে।

বিকল্পভাবে আপনি নীচের বিবৃতি সহ সারণির জন্য পরিচয় সন্নিবেশগুলিকে অনুমতি দিতে এবং অনুমতি দিতে পারেন

SET IDENTITY_INSERT tbl_A_archive ON
--Your inserts here
SET IDENTITY_INSERT tbl_A_archive OFF

অবশেষে, আপনার যদি পরিচয় কলামটি ঠিক তেমন কাজ করতে হয় তবে আপনি সর্বদা সঞ্চিত সংগ্রহটি চালাতে পারেন।

sp_columns tbl_A_archive 

এটি আপনাকে সারণী থেকে সমস্ত কলাম ফিরিয়ে দেবে যা আপনি আপনার প্রশ্নের পরে কেটে পেস্ট করতে পারবেন। (এটি * ব্যবহারের চেয়ে প্রায় সবসময়ই ভাল)


11

এসকিউএল স্টেটমেন্টের জন্য আপনাকে কলাম তালিকাটিও নির্দিষ্ট করতে হবে। যেমন যেমন

INSERT INTO tbl (idcol1,col2) VALUES ( value1,value2)

পরিবর্তে

INSERT INTO tbl VALUES ( value1,value2)

2
ওপির বক্তব্যের ক্ষেত্রে এটি হয় না। INSERT INTO দ্বারা একটি নির্বাচন বিবৃতি অনুসরণ করা হয় তবে ভ্যালুগুলির প্রয়োজন হয় না। দয়া করে আপনার উত্তরটি সংশোধন করুন বা সরান।
গ্যারি

4

উভয়ই কাজ করবে তবে আপনি যদি এখনও # 1 ব্যবহার করে ত্রুটি পান তবে # 2 এর জন্য যান

1)

SET IDENTITY_INSERT customers ON
GO
insert into dbo.tbl_A_archive(id, ...)
SELECT Id, ...
FROM SERVER0031.DB.dbo.tbl_A

2)

SET IDENTITY_INSERT customers ON
GO
insert into dbo.tbl_A_archive(id, ...)
VALUES(@Id,....)

4
যদি ওপি একাধিক রেকর্ড সন্নিবেশ করে তবে সত্যিই এটি যাওয়ার উপায় নয়। আপনি উপেক্ষা করছেন "tbl_A সারি এবং প্রস্থের একটি বিশাল টেবিল, অর্থাৎ এটির প্রচুর কলাম রয়েছে I আমি নিজেই সমস্ত কলামগুলি টাইপ করতে চাই না।"
গ্যারি

4

এই প্রশ্নের জন্য উল্লিখিত সমাধানগুলির জন্য একটি নির্বাচনী বিবৃতিটির জন্য কলাম-বিস্মৃত তালিকাতে সমস্ত কলামের নামকে পপুল করার জন্য, আমি নিম্নলিখিত বিকল্পগুলি ব্যবহার করি কারণ এগুলি এখানে বেশিরভাগ প্রতিক্রিয়াগুলির তুলনায় কিছুটা কম ভার্বোজ। যদিও, এখানে বেশিরভাগ প্রতিক্রিয়া এখনও পুরোপুরি গ্রহণযোগ্য।

1)

SELECT column_name + ',' 
FROM   information_schema.columns 
WHERE  table_name = 'YourTable'

2) আপনার যদি এসকিউএল সার্ভার এসএসএমএস থাকে তবে এটি সম্ভবত কলামগুলি তৈরি করার সহজতম পদ্ধতি।

1) অবজেক্ট এক্সপ্লোরারের টেবিলটিতে যান এবং টেবিলের নামের বামদিকে + ক্লিক করুন বা সাব তালিকাটি খোলার জন্য টেবিলের নামটিতে ডাবল ক্লিক করুন।

2) মূল ক্যোয়ারী অঞ্চলে কলামের সাবফোল্ডারটি টেনে আনুন এবং এটি আপনার জন্য পুরো কলামের তালিকাটি স্বয়ংক্রিয়ভাবে পোস্ট করবে।


3

কোনও পরিচয় কলাম থাকলে আপনাকে অবশ্যই কলামের নাম নির্দিষ্ট করতে হবে যা আপনি সন্নিবেশ করতে চান। কমান্ডটি নীচের মত হবে:

SET IDENTITY_INSERT DuplicateTable ON

INSERT Into DuplicateTable ([IdentityColumn], [Column2], [Column3], [Column4] ) 
SELECT [IdentityColumn], [Column2], [Column3], [Column4] FROM MainTable

SET IDENTITY_INSERT DuplicateTable OFF

যদি আপনার টেবিলটিতে অনেকগুলি কলাম রয়েছে তবে এই কমান্ডটি ব্যবহার করে সেই কলামগুলির নাম পান।

SELECT column_name + ','
FROM   information_schema.columns 
WHERE  table_name = 'TableName'
for xml path('')

(শেষ কমা অপসারণের পরে (',')) কেবলমাত্র পূর্ববর্তী কলামগুলির নাম অনুলিপি করুন।


3

এই কাজ করা উচিত. আমি কেবল আপনার ইস্যুতে দৌড়েছি:

SET IDENTITY_INSERT dbo.tbl_A_archive ON;
INSERT INTO     dbo.tbl_A_archive (IdColumn,OtherColumn1,OtherColumn2,...)
SELECT  *
FROM        SERVER0031.DB.dbo.tbl_A;
SET IDENTITY_INSERT dbo.tbl_A_archive OFF;

দুর্ভাগ্যক্রমে মনে হচ্ছে আপনার পরিচয় নির্দিষ্ট করে রেকর্ড সন্নিবেশ করতে পরিচয় কলাম সহ কলামগুলির একটি তালিকা প্রয়োজন। তবে , আপনি নির্বাচন করে কলামগুলি তালিকাভুক্ত করবেন না। @ ডেভ ক্লারড্রে প্রস্তাবিত হিসাবে এটি আপনার অনুলিপি করে কপি এবং পেস্ট করার তালিকা তৈরি করবে (যদি 200000 টির চেয়ে কম অক্ষর থাকে)।

আমি ইউএসইটি যুক্ত করেছি যেহেতু আমি উদাহরণগুলির মধ্যে পরিবর্তন করছি।

USE PES
SELECT SUBSTRING(
    (SELECT ', ' + QUOTENAME(COLUMN_NAME)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'Provider'
        ORDER BY ORDINAL_POSITION
        FOR XML path('')),
    3,
    200000);

3
SET IDENTITY_INSERT tableA ON

INSERT Into tableA ([id], [c2], [c3], [c4], [c5] ) 
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB

এটার মত না

INSERT INTO tableA
SELECT * FROM tableB

SET IDENTITY_INSERT tableA OFF

2

এই কোড স্নিপেট দেখায় যে কীভাবে পরিচয় প্রাথমিক কী কলামটি চালু থাকে সারণিতে সন্নিবেশ করা যায়।

SET IDENTITY_INSERT [dbo].[Roles] ON
GO
insert into Roles (Id,Name) values(1,'Admin')
GO
insert into Roles (Id,Name) values(2,'User')
GO
SET IDENTITY_INSERT [dbo].[Roles] OFF
GO

1

আপনি যদি কোনও মানককে একটি সঞ্চিত পদ্ধতির মাধ্যমে এক টেবিল থেকে অন্য টেবিলে সন্নিবেশ করতে চান তবে। আমি এটি এবং এটি ব্যবহার করলাম , এটি উত্তরোমর উত্তরটির মতোই।

CREATE procedure [dbo].[RealTableMergeFromTemp]
    with execute as owner
AS
BEGIN
BEGIN TRANSACTION RealTableDataMerge
SET XACT_ABORT ON

    DECLARE @columnNameList nvarchar(MAX) =
     STUFF((select ',' + a.name
      from sys.all_columns a
      join sys.tables t on a.object_id = t.object_id 
       where t.object_id = object_id('[dbo].[RealTable]') 
    order by a.column_id
    for xml path ('')
    ),1,1,'')

    DECLARE @SQLCMD nvarchar(MAX) =N'INSERT INTO [dbo].[RealTable] (' + @columnNameList + N') SELECT * FROM [#Temp]'

    SET IDENTITY_INSERT [dbo].[RealTable] ON;
    exec(@sqlcmd)
    SET IDENTITY_INSERT [dbo].[RealTable] OFF

COMMIT TRANSACTION RealTableDataMerge
END

GO

0

এক বা একাধিক কলাম রয়েছে যাতে স্বয়ং-বর্ধিত সম্পত্তি রয়েছে বা সেই বৈশিষ্ট্যের মান সীমাবদ্ধ হিসাবে গণনা করা হবে। আপনি এই কলামটি সংশোধন করার চেষ্টা করছেন।

এটি সমাধান করার দুটি উপায় রয়েছে) 1) অন্যান্য কলামগুলি স্পষ্টভাবে উল্লেখ করুন এবং কেবল তাদের মানগুলি সেট করুন এবং প্রাথমিককি বা স্বয়ংক্রিয়-বৃদ্ধি কলাম মানটি স্বয়ংক্রিয়ভাবে সেট হয়ে যাবে।

2) আপনি INDENTITY_INSERT চালু করতে পারেন তারপরে আপনার queryোকানো ক্যোয়ারীটি কার্যকর করুন শেষ পর্যন্ত আইডিএনটিটিআইপিএসআরটি বন্ধ করে দিন।

পরামর্শ: প্রথম পদক্ষেপটি অনুসরণ করুন কারণ এটি একটি আরও উপযুক্ত এবং দক্ষ পদ্ধতির।

আরও তথ্যের জন্য এসকিউএল-সহায়কটিতে এই নিবন্ধটি পড়ুন ।


0

আপনি যেখান থেকে রেকর্ড নির্বাচন করছেন তা সারণীতে কলামের নাম, উপাত্তের ধরণ এবং ক্রমটি নিশ্চিত করুন the কেবলমাত্র পার্থক্যটি এমন হওয়া উচিত যে গন্তব্য সারণীর প্রথম কলাম হিসাবে একটি পরিচয় কলাম থাকতে পারে, এটি উত্স সারণীতে নেই।

আমি যখন "INSERT INTO table_Dest SELECT * FROM table_source_linked_server_excel" চালাচ্ছিলাম তখন আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি। টেবিলগুলির মধ্যে 115 টি কলাম ছিল।

আমার এমন দুটি টেবিল ছিল যেখানে আমি এক্সেল থেকে ডেটাবেজে টেবিলে (সংযুক্ত সার্ভার হিসাবে) লোড করছিলাম। ডাটাবেস সারণিতে, আমি 'আইডি' নামে একটি পরিচয় কলাম যুক্ত করেছি যা উত্স এক্সেলের মধ্যে নেই। একটি টেবিলের জন্য ক্যোয়ারীটি সফলভাবে চলছিল এবং অন্যটিতে আমি ত্রুটি পেয়েছি "টেবিলের পরিচয় কলামের জন্য একটি স্পষ্ট মান কেবল তখনই নির্দিষ্ট করা যেতে পারে যখন একটি কলাম তালিকা ব্যবহার করা হয় এবং আইডিএনটিটিআইপিএসআরটি এসকিউএল সার্ভার চালু থাকে"। উভয় প্রশ্নের জন্য দৃশ্যটি হুবহু হওয়ায় এটি বিস্মিত হয়েছিল। সুতরাং আমি এটি তদন্ত করেছি এবং আমি যা পেয়েছি তা হ'ল যে প্রশ্নের সন্ধানে আমি INSERT INTO এর সাথে ত্রুটি পাচ্ছিলাম .. নির্বাচন করুন:

  1. মানগুলি সঠিক হলেও উত্স সারণীতে কলামের কিছু নাম পরিবর্তন করা হয়েছিল
  2. প্রকৃত ডেটা কলামগুলির বাইরে কিছু অতিরিক্ত কলাম রয়েছে যা SELECT * দ্বারা নির্বাচন করা হয়েছিল। উত্স এক্সেল টেবিলের (লিঙ্কযুক্ত সার্ভারের অধীনে) "স্ক্রিপ্ট টেবিল হিসাবে> নতুন জিজ্ঞাসা উইন্ডো হিসাবে নির্বাচন করুন" বিকল্পটি ব্যবহার করে এটি আবিষ্কার করেছি। এক্সেলের শেষ কলামের ঠিক পরে একটি লুকানো কলাম ছিল, যদিও এতে কোনও ডেটা নেই। আমি উত্স এক্সেল সারণীতে সেই কলামটি মুছে ফেলেছি এবং সংরক্ষণ করেছি।

উপরোক্ত দুটি পরিবর্তন করার পরে INSERT INTO ... নির্বাচন করুন ... এর জন্য ক্যোয়ারীটি সফলভাবে চলল। গন্তব্য সারণিতে পরিচয় কলাম প্রত্যাশিত প্রতিটি সন্নিবেশ করা সারির জন্য পরিচয় মান উত্পন্ন করে।

সুতরাং, যদিও গন্তব্য সারণীতে একটি পরিচয় কলাম থাকতে পারে যা উত্স সারণীতে নেই, INSERT INTO .. ​​SELECT * সফলভাবে চলবে যদি উত্স এবং গন্তব্যের নাম, উপাত্তের ধরণ এবং কলাম ক্রম ঠিক একই হয়।

আশা করি এটি কাউকে সাহায্য করবে।


-1

আমি মনে করি যে এই ত্রুটিটি সারণী সংজ্ঞায় কলামগুলির সংখ্যার সাথে সন্নিবেশ অনুসন্ধানের ক্যোয়ারীতে কলামের সংখ্যার সাথে মিল নেই। প্রবেশকৃত মান সহ কলামের দৈর্ঘ্য বাদ দেওয়া হয়। সুতরাং এই সমস্যাটি সমাধান করার জন্য কেবল সারণির সংজ্ঞাটি পর্যালোচনা করুন


আমার জন্য কাজ করেছেন: আমি নকশার টেবিলটিতে একটি কলাম যুক্ত করতে ভুলে গেছি, অন্যান্য উত্তরগুলি চেষ্টা করার আগে এটির জন্য প্রথমে ভাল করে পরীক্ষা করা ভাল।
গাম্বোয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.