वास्तव में, MySQL स्टोर्ड प्रोसीजर निर्माण के समय के वातावरण को संरक्षित करता है। इसे निम्न उदाहरण की मदद से समझा जा सकता है जिसमें हम स्ट्रिंग्स को जोड़ने के लिए दो बार्स का उपयोग कर रहे हैं। यह केवल तभी वैध है जब SQL मोड ansi हो। लेकिन यदि हम SQL मोड को नॉन-ansi में बदलते हैं, तो प्रोसीजर अभी भी ऐसे काम करता है जैसे मूल सेटिंग अभी भी सत्य है।
उदाहरण
mysql> Set sql_mode = 'ansi'//
Query OK, 0 rows affected, 1 warning (0.14 sec)
mysql> Create Procedure Con_string()
->
SELECT 'a'||'b'//
Query OK, 0 rows affected (0.12 sec)
mysql> Call Con_string ();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
mysql> Set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> Call Con_string();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
उपरोक्त परिणाम सेट दर्शाता है कि SQL मोड को नॉन-ansi में बदलने के बाद भी प्रोसीजर Con_string() वही परिणाम दे रहा है जैसे SQL मोड अभी भी ansi है। लेकिन नया प्रोसीजर दो बार्स को स्वीकार नहीं करेगा क्योंकि हमने SQL मोड को नॉन-ansi में बदल दिया है।
mysql> create procedure Con_string1()
->
Select 'a'||'b'//
Query OK, 0 rows affected (0.02 sec)
mysql> Call Con_string1()//
+----------+
| 'a'||'b' |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 2 warnings (0.00 sec)