এক্সএমএল কলামে একক এন্ট্রি সম্পাদনা করার সহজ উপায়?


9

আমি যেমন বুঝতে পারি এমএস এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওগুলি জিএমআইয়ের মাধ্যমে এক্সএমএল কলামগুলিতে সরাসরি এন্ট্রিগুলি সম্পাদনা / প্রতিস্থাপনের অনুমতি দেয় না (অনুলিপি / পেস্ট কাজ করে না))।

এক্সএমএল কলামে একটি একক এন্ট্রি প্রতিস্থাপনের সবচেয়ে সহজ বিকল্পটি কী? এক্সএমএল কলাম মানের জন্য আমাকে কি আপডেট / রেপ্লেস থেকে আলাদা কিছু ব্যবহার করতে হবে?

উত্তর:


22

আপনার যদি কেবলমাত্র একবারে এক্সএমএলের পুরো টুকরোটি প্রতিস্থাপন করতে হয় তবে আপনি একটি সাধারণ আপডেট করতে পারেন, যেমন: এর মতো কিছু:

UPDATE yourTable
SET yourXML = '<yourNewValidXML/>' 
WHERE rowId = 1

আপনার যদি স্বতন্ত্র বৈশিষ্ট্য বা উপাদানগুলি সম্পাদনা করতে হয় তবে আপনি একক মানগুলি আপডেট করার জন্য এসকিউএল সার্ভারে এক্সএমএল ডেটা-টাইপের। পরিবর্তন পদ্ধতিটি ব্যবহার করতে পারেন। আপনাকে শুরু করার জন্য এখানে একটি সাধারণ উদাহরণ:

DECLARE @t TABLE ( rowId INT IDENTITY PRIMARY KEY, yourXML XML )

INSERT INTO @t ( yourXML )
VALUES ( '<Users>
    <User Name="Bob"></User>
    <User Name="Mikhail"></User>
    <User Name="John"></User>
    <User Name="Sue"></User>
</Users>' )

SELECT 'before' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1

-- Update one attribute
UPDATE @t
SET yourXML.modify('replace value of (Users/User/@Name[.="Bob"])[1] with "wBob"')
WHERE rowId = 1

SELECT 'after' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1

আপনার যদি আরও সহায়তার প্রয়োজন হয় তবে দয়া করে আপনার এক্সএমএল এবং আপনার প্রত্যাশিত ফলাফলের একটি ছোট নমুনা পোস্ট করুন।

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