2009-01-21 21 views
20

में एक टेक्स्ट फ़ील्ड में कैसे संलग्न करें एसक्यूएल सर्वर 2005 में टी-एसक्यूएल का उपयोग करके टेक्स्ट फ़ील्ड में जोड़ने का सबसे अच्छा तरीका क्या है?टी-एसक्यूएल एसक्यूएल सर्वर 2005

एक वर्चर के साथ मैं यह करूँगा।

update tablename set fieldname = fieldname + 'appended string' 

लेकिन यह टेक्स्ट फ़ील्ड के साथ काम नहीं करता है।

+0

मेरे सिर के ऊपर से मैं कहूंगा कि काम करना चाहिए। मुद्दा शायद एक रूपांतरण/कास्टिंग मुद्दा है। Fieldname = fieldname + n'appended string ' – Craig

+0

दुर्भाग्यवश, यह काम नहीं किया है। मुझे मिला 'डेटा प्रकार टेक्स्ट और nvarchar एड ऑपरेटर में असंगत हैं।' हालांकि धन्यवाद। –

उत्तर

33

अमान्य हो जाने के इस प्रयास करें:

update 
    tablename 
set 
    fieldname = convert(nvarchar(max),fieldname) + 'appended string' 
+0

धन्यवाद Bravax, यह सही था! –

+1

ठीक है, कम से कम मुझे पता था कि यह कुछ प्रकार की रूपांतरण त्रुटि थी। :) धन्यवाद Bravax। – Craig

+2

यदि फ़ील्डनाम शून्य है तो यह काम नहीं करेगा। fieldname के बजाय कोल्सिस (फ़ील्डनाम, '') का प्रयास करें – nuander

6

This should work (link)

लिंक से कॉपी किया गया:

DECLARE @ptrval binary(16) 
SELECT @ptrval = TEXTPTR(ntextThing) 
FROM item 
WHERE id =1 
UPDATETEXT table.ntextthing @ptrval NULL 0 '!' 
GO 
+0

मेरी इच्छा है कि एक आसान तरीका था, लेकिन लिंक के लिए धन्यवाद। –

3

2005 में आप varchar (max) या nvarchar (अधिकतम) का उपयोग करना चाहिए इन स्तंभों सामान्य varchar कार्यों के साथ काम करेंगे। पाठ और ntext

0

varchar (max) के लिए अधिकतम वर्ण 2,147,483,647 वर्ण होता है। यह टेक्स्ट डेटा प्रकार जैसा ही है।

जो भी पाठ हो सकता है, यह हो सकता है, इसलिए आपको VARCHAR (MAX) पर स्विच करके कमरे से बाहर निकलने की चिंता करने की आवश्यकता नहीं है।

धन्यवाद।

संबंधित मुद्दे