आप मूल रूप से क्या करने की कोशिश कर रहे हैं? ऐसा करने का तरीका आपने इसे क्यों चुना है? ऐसा लगता है कि आप सेट-आधारित तर्क को समझने में थोड़ा अस्पष्ट हैं। अन्य पोस्टर्स द्वारा प्रदान किए गए प्रत्येक उत्तर मान्य हैं और काम करेंगे, लेकिन आपके उद्देश्य के लिए सबसे उपयुक्त नहीं हो सकते हैं। क्या यह मौजूदा डेटा सेट के खिलाफ प्रसंस्करण है? क्या यह डेटा लोड या सम्मिलित प्रक्रिया का हिस्सा है? आपके द्वारा सूचीबद्ध प्रत्येक आईडी फ़ील्ड में अद्वितीय मूल्यों की अपनी सीमा है। अपने उदाहरण के आधार पर ऐसा लगता है कि तुम क्या वास्तव में करना चाहते हैं अद्यतन bool मूल्य है जब आईडी 2 = 1
UPDATE table_name SET Bool = 'T'
WHERE Id2 = 1
अधिक होने की संभावना आप एक तर्क है कि कुछ डेटा के आधार पर बूल मान सेट विकसित करने के लिए इच्छुक रहे हैं नियम - उदाहरण के लिए यदि आईडी 2 आईडी 1 से कम या बराबर है। एक मामले में बयान यहाँ काम करता है:
UPDATE table_name SET Bool = CASE WHEN Id1 > Id2 THEN 'T' ELSE 'F' END
यह कहीं अधिक कुशल है जब आप प्रत्येक और आप सम्मिलित मूल्यों के हर बदलाव के लिए अपने कहां खंड में में और/या नियम लिखने की तुलना में डेटा के बड़े सेट के साथ काम कर रहे हैं।
लागू करने के लिए जगह के बजाय फ़िल्टर के रूप में कहें तो/फिर तर्क टाइप करें।
छोटे डेटा प्रविष्टियों में (आप मैन्युअल रूप से तालिका फ़ील्ड में मान टाइप करते हैं, लेन-देन द्वारा किसी प्रकार के वेब फॉर्म लेनदेन से डालने वाले होते हैं) यह संभवतः मूल्य को मैन्युअल रूप से सेट करने के लिए सबसे सरल है, या इसे उसमें बनाएं आपके सिस्टम का प्रक्रियात्मक हिस्सा और तालिका में सत्यापन नियम लागू करें।
यदि आप एक संग्रहीत प्रक्रिया लिखना चाहते हैं जो ऐसा करता है तो आप आईडी मानों के लिए चर बनाते हैं और इन सिस्टम को बाहरी डेटाबेस को आपके डेटाबेस सिस्टम में ट्रांसमिट करने के लिए लिंक करते हैं। (मुझे लगता है कि आपने पहले ही टेबल संरचनाएं बनाई हैं);
CREATE PROCEDURE table_name_insert
@Id1 Int NOT NULL,
@Id2 Int NOT NULL
-- If you want to execute the logic outside of the DB environment
-- (perhaps as part of an SSIS package) then you will want to add this
-- variable and pass it in explicitly.
, @Bool bit NOT NULL
AS
DECLARE @sql nvarchar(4000)
SET @sql = '
INSERT INTO table_name (ID1, ID2, Bool)
SELECT @Id1, @Id2, [Case Logic or Variable Value for Bool]
' EXEC sp_executeSQL @sql
इस प्रक्रिया को अपने कार्यक्रम से कहा जा सकता है और आप चर आप इसे में एक सरणी से उत्पन्न हो सकता है गुजरती हैं। ऐसे तरीके भी हैं जहां आप सीधे उचित कॉलम पर मान आयात कर सकते हैं और फिर पोस्ट-डालने कोड में बूल तर्क निष्पादित कर सकते हैं। हर मामले को संभालने के लिए "हार्ड कोडिंग" एक WHERE कथन अक्षम है, और इसमें आने की एक बुरी आदत है।
आप किस डेटाबेस का उपयोग कर रहे हैं? –