एक मेज पर SqlBulkCopy का उपयोग करते समय एक GUID प्राथमिक कुंजी और डिफ़ॉल्ट newsequentialid()एक GUID प्राथमिक कुंजी और डिफ़ॉल्ट newsequentialid() के साथ एक तालिका पर SQLBulkCopy का उपयोग कैसे कर सकते हैं?
जैसे
CREATE TABLE [dbo].[MyTable](
[MyPrimaryKey] [uniqueidentifier] NOT NULL CONSTRAINT [MyConstraint] DEFAULT (newsequentialid()),
[Status] [int] NULL,
[Priority] [int] NULL,
CONSTRAINT [PK_MyTable] PRIMARY KEY NONCLUSTERED
(
[MyPrimaryKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
सी # कोड
tran = connection.BeginTransaction();
SqlBulkCopy sqlCopy = new SqlBulkCopy(connection,SqlBulkCopyOptions.Default, tran);
sqlCopy.DestinationTableName = "MyTable";
sqlCopy.WriteToServer(dataTable);
आपको एक त्रुटि देता है साथ ...
कॉलम 'MyPrimaryKey' DBNull की अनुमति नहीं देता है। वैल्यू
मैंने SqlBulkCopyOptions को झुकाव करने का प्रयास किया है। काम करने वाली एकमात्र चीज MyPrimaryKey फ़ील्ड को नल को अनुमति देने और प्राथमिक कुंजी को हटाने के लिए सेट कर रही है।
किसी को भी पता है कि इस मुद्दे के लिए कोई समाधान है या नहीं? या क्या आप सत्यापित कर सकते हैं कि कोई वर्कअराउंड नहीं है (तालिका संरचना को बदलने के अलावा)?
बहुत बढ़िया, यह मुझे मदद की !!!!! – HaBo
JRummell, क्या GUID कॉलम स्वचालित रूप से SQLBULKCOPY आदेश के माध्यम से डाली गई प्रत्येक पंक्ति के लिए एक नया मान उत्पन्न करेगा? अग्रिम में धन्यवाद। –