2010-05-03 5 views
8

मैं ओरेकलकौन सा आदेश ओरेकल में SQLServer से आईडीआईटीटी इंसर्ट चालू/बंद करेगा?

SET IDENTITY_INSERT table ON 

INSERT INTO table (id, value) VALUES (1, 2) 

SET IDENTITY_INSERT table OFF 

id को T-SQL से इस क्वेरी (यहाँ सरलीकृत) विस्थापित करने के लिए SQLServer में एक पहचान क्षेत्र में किया जा रहा है।

मैं Oracle में एक दृश्य के साथ एक ही मेज है, मैं एक टुकड़ा अनुक्रम निष्क्रिय करने के लिए कैसे पता चलता है कि नहीं मिल रहा है और यह सेट मैक्स (आईडी) के साथ फिर से शुरू करने के लिए + 1.

किसी भी ओरेकल सकता है विशेषज्ञ इस के साथ मेरी मदद कर सकते हैं?

धन्यवाद, रोड्रिगो।

उत्तर

7

आपको ओरेकल में पहचान को अक्षम करने की आवश्यकता नहीं है। चूंकि आप अनुक्रमों का उपयोग कर रहे हैं, बस उस डालने के लिए इसका उपयोग न करें।

है, बजाय

insert into table (id, values) values (table_seq.nextval, 2) 

आप

insert into table (id, values) values (1, 2) 

का उपयोग अनुक्रम को पुन: प्रारंभ के बारे में अपने दूसरे प्रश्न के रूप में, मुझे लगता है कि इतना में here उत्तर दिया जाता है लगता है।

+0

यदि आप पहचान को समान रखना चाहते हैं (जो मामला प्रतीत होता है) यह कोई समाधान नहीं है। –

+0

@Nate: आप कहां चूक गए हैं "MAX (id) +1" –

1

ओरेकल अनुक्रमों द्वारा पॉप्युलेट किए गए कॉलम के साथ मेसिंग इस तरह से खराब विचार की तरह लगता है। ओरेकल में, आप आम तौर पर एक ट्रिगर के साथ अनुक्रमों के माध्यम से एक कॉलम बनाए रख रहे हैं। यदि आप इस सुविधा को चालू और बंद करना शुरू करते हैं, और अनुक्रम विज्ञापन lib को रीसेट करना शुरू करते हैं, तो आप किसी अनुक्रम के जोखिम को तब चलाते हैं जब किसी अन्य प्रक्रिया को इसकी आवश्यकता नहीं होती है, या किसी मान पर रीसेट हो रहा है जिसका उपयोग पहले से ही किया गया है लेकिन प्रतिबद्ध नहीं है।

+1

ट्रिगर्स अनावश्यक हैं जब तक कि 'अनुक्रम .EXTVAL' का उपयोग तालिका के लिए सभी INSERT कथन में किया जाता है, जो वास्तव में केवल एक संग्रहित प्रक्रिया में ही होना चाहिए । –

+0

दोनों जवाब और साइन सलाह के लिए टिप्पणी दोनों +1। –

0

अनुक्रमों को छोड़ें और अधिकतम + 1 मान के साथ किए जाने पर उन्हें फिर से बनाएं।

+0

यह मानते हुए कि यह 1-बार ईटीएल –

+1

है यह कोड को अमान्य करता है जो उस अनुक्रम पर निर्भर करता है और यह प्रक्रिया में सभी विशेषाधिकारों को भी छोड़ देता है। यदि यह कोई समस्या नहीं है तो यह सबसे आसान विकल्प है। –

+0

@Rob: दुष्प्रभावों पर अच्छा बिंदु। – DCookie

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