2011-03-22 18 views
9

बिना यह एक सच में बुनियादी एसक्यूएल प्रश्न हो सकता है, लेकिन मैं जांच खंड बिना किसी SQL सम्मिलित बयान देखा है और मैं सोच रहा था कि अगर एसक्यूएल सर्वर 2000 या 2008 में कुछ विशेष मामला है।एसक्यूएल सर्वर सम्मिलित जांच

INSERT <table_name> 
(
    column names 
) 
select * 
from <another table> 
where <condition> 

क्षमा की तरह सम्मिलित बयान देखो कुछ है, अगर इस सुपर बुनियादी है, लेकिन मैं सिर्फ यह सुनिश्चित करना चाहता था। धन्यवाद!

उत्तर

15

आईएनटीओ optional है। यह ANSI एसक्यूएल में आवश्यक है लेकिन एमएस/साइबेस डेवलपर्स ने इसे वैकल्पिक बनाने का फैसला किया है।

+0

धन्यवाद। मैंने अभी आईएनटीओ क्लॉज के साथ और उसके बिना एक सम्मिलन कथन चलाया और परिणाम समान हैं। – Abe

5

BNF व्याकरण http://savage.net.au/SQL/

92, 99, एसक्यूएल की जाँच करें: 2003

<insert statement> ::= INSERT INTO <insertion target> <insert columns and source> 

एएनएसआई कल्पना के अनुसार, में केवल एक MERGE खंड में वैकल्पिक किया जाना चाहिए।

SQL Server (2000 से यह लिंक यह दिखाने के लिए कि यह कितना पुराना है - यह SQL सर्वर के पहले संस्करण से मौजूद है), यह वैकल्पिक है। यह MySQL के लिए भी वैकल्पिक है।

INSERT [ INTO] 
    { table_name WITH (<table_hint_limited> [ ...n ]) 
     | view_name 
     | rowset_function_limited 
    } 

    { [ (column_list) ] 
     { VALUES 
      ({ DEFAULT | NULL | expression } [ ,...n]) 
      | derived_table 
      | execute_statement 
     } 
    } 
    | DEFAULT VALUES 
0

आप उल्लेख करते हैं कि यह SQL के प्रारंभिक संस्करण से आता है। यदि आपके पास 2005 के बाद चल रहा है तो आप आईएनटीओ छोड़ सकते हैं।

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