·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
   
 
 
   
 
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
SQL ¼­¹ö¿¡¼­¡¸µ¥ÀÌÅÍ ÄÚµå ¿¡·¯¡¹Ã³¸®Çϱâ

Tony Patton ( TechRepublic )   2006/06/09  
[Áöµð³ÝÄÚ¸®¾Æ].NET ¾ÖÇø®ÄÉÀÌ¼Ç Äڵ忡¼­ ¿¹¿Ü¸¦ ó¸®ÇÏ´Â °ÍÀº ¸Å¿ì °£´ÜÇϰí try/catch ÄÚµå ºí·ÏÀ» ÀÌ¿ëÇÑ Á÷°üÀûÀÎ ÀýÂ÷ÀÌ´Ù. µ¥ÀÌÅͺ£À̽º ºÎºÐ¿¡¼­µµ ¿ª½Ã ¿¹¿Ü¸¦ ¸ð´ÏÅÍ ÇÒ ¼ö Àִµ¥, ÀÌ ±â»ç¿¡¼­´Â SQL ¼­¹ö¿Í T-SQLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º Äڵ忡¼­ ¿¡·¯¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» »ìÆìº»´Ù.

°³¹ßÀÚµéÀº ¿¹¿Ü(exception)¸¦ ó¸®Çϴµ¥ Ä£ÀýÇϰԵµ ¸¹Àº ³ë·ÂÀ» ±â¿ïÀ̱⠶§¹®¿¡ »ç¿ëÀÚµéÀº ¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ¿¡·¯ ¸Þ½ÃÁö¸¦ °ÆÁ¤ÇÒ Çʿ䰡 ¾ø´Ù. ÀÌ·± ÀÌÀ¯ ¶§¹®¿¡, ¿¹¿Ü 󸮴 ¸ðµç .NET ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ç¥ÁØ Ç׸ñÀÌ´Ù. try/catch ºí·ÏÀº °³¹ßÀÚ°¡ ¿¹¿Ü¸¦ Àâ¾Æ³»°í ±× ½ÃÁ¡¿¡¼­ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÀ» ÄÁÆ®·ÑÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¸¹Àº ¿¡·¯µéÀº µ¥ÀÌÅͺ£À̽º ó¸® Áß¿¡ ¹ß»ýÇÏÁö¸¸ ¸¹Àº °³¹ßÀÚµéÀº µ¥ÀÌÅͺ£À̽º ºÎºÐ¿¡¼­ »ý±â´Â ¿¡·¯¸¦ ó¸®ÇÏ´Â °ÍÀ» ¾ËÁö ¸øÇÑ´Ù. ÀÌ ±â»ç¿¡¼­´Â SQL ¼­¹ö¿Í T-SQLÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º Äڵ忡¼­ ¿¡·¯¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.

T-SQL¿¡¼­ ¹ß»ýÇÑ ¿¡·¯ ó¸®Çϱâ
SQL ¼­¹ö°¡ Á¦°øÇÏ´Â T-SQL ¾ð¾î´Â ÀúÀå ÇÁ·Î½ÃÀú, ÇÔ¼ö µî¿¡¼­ ¹ß»ýÇÒ ¼ö ÀÖ´Â Ä¡¸íÀûÀÌÁö ¾ÊÀº ¿¡·¯¸¦ ½±°Ô ó¸®ÇÒ ¼ö ÀÖ°Ô ÇØÁÖÁö¸¸, ¸ðµç ¿¡·¯°¡ ½±°Ô ó¸®ÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀº ¾Æ´Ï´Ù. »ç½Ç, ¿¡·¯¿¡´Â Ä¡¸íÀûÀÎ ¿¡·¯¿Í Ä¡¸íÀûÀÌÁö ¾ÊÀº ¿¡·¯°¡ Àִµ¥, Ä¡¸íÀûÀÌÁö ¾ÊÀº ¿¡·¯¿Í´Â ´Þ¸® Ä¡¸íÀûÀÎ ¿¡·¯´Â ½ÇÇàÀÌ ÁߴܵȴÙ.

Æ®·£Àè¼Ç
º¯°æ»çÇ×ÀÌ ¸ðµÎ ¿Ï·áµÅ ¸ðµç °ÍÀÌ Á¤»óÀÎ °ÍÀ» È®½ÇÈ÷ Çϱâ À§Çؼ­´Â µ¥ÀÌÅͺ£À̽º Äڵ忡 Æ®·£Àè¼ÇÀ» »ç¿ëÇØ¾ß¸¸ ÇÑ´Ù. SQL ¼­¹ö ¿Â¶óÀÎ µµ¿ò¸»Àº selects, inserts, updates ȤÀº deletes¿Í °°Àº ¸í·ÉÇàÀÇ ¿¬¼ÓÀ¸·Î ÀÌ·ç¾îÁø ³í¸®Àû ÀÛ¾÷ ´ÜÀ§¶ó°í ¼³¸íÇÑ´Ù. ¸¸¾à Æ®·£Àè¼Çµ¿¾È ¿¡·¯°¡ ¾ø´Ù¸é Æ®·£Àè¼ÇÀÇ ¸ðµç º¯°æ »çÇ×Àº µ¥ÀÌÅͺ£À̽º¿¡ Àû¿ëµÉ °ÍÀ̸ç, ¸¸¾à ¿¡·¯°¡ ¹ß»ýÇϸé, ¾î¶² º¯°æ»çÇ×µµ µ¥ÀÌÅͺ£À̽º¿¡ Àû¿ëµÇÁö ¾Ê´Â´Ù.

Æ®·£Àè¼ÇÀº BEGIN TRANSACTION°ú END TRANSACTION ¸í·É »çÀÌ¿¡ Æ÷ÇԵȴÙ. ROLLBACK TRANSACTION ¸í·ÉÀº ¸ðµç º¯°æ»çÇ×À» Ãë¼ÒÇϵµ·Ï ÇÏ¿©, ¾î¶² º¯°æ»çÇ×µµ ÀÌ·ç¾îÁöÁö ¾Ê°Ô ÇÑ´Ù. COMMIT TRANSACTION ¸í·ÉÀº º¯°æ»çÇ×À» µ¥ÀÌÅͺ£À̽º¿¡ ¹Ý¿µÇÑ´Ù. ÀÌÁ¦, T-SQL¿¡¼­ ¿¡·¯¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.

@@Error
@@Error ÇÔ¼ö´Â T-SQLÀ» ¸¸µé ¶§ ¿¡·¯¸¦ ó¸®Çϵµ·Ï ÇØÁØ´Ù. ÀÌ ÇÔ¼ö´Â ½Ã½ºÅÛÀÇ ¿¡·¯ Äڵ带 µ¹·ÁÁØ´Ù. ¸¸¾à ¿¡·¯°¡ ¾øÀ¸¸é 0À» ¸®ÅÏ ÇÑ´Ù. @@Error ÇÔ¼ö´Â °¢ T-SQL ¸í·ÉÀÌ ½ÇÇàµÇ¸é ÃʱâÈ­µÇ±â ¶§¹®¿¡, ¸í·ÉÀ» È£ÃâÇÑ Á÷ÈÄ ¹Ù·Î ºÒ·¯¾ßÇÑ´Ù.

RAISERROR
RAISERROR ¸í·ÉÀº Ä¿½ºÅÒ ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸¸µé°Å³ª sysmessages Å×ÀÌºí¿¡ ÀÌ¹Ì ÀÖ´Â ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ÀÌ ±¸¹®ÀÇ ¹®¹ýÀº ¿Â¶óÀÎÀ¸·Î º¼ ¼ö ÀÖÁö¸¸, °¡Àå ±âº»ÀûÀÎ ÇüÅ´ ¿¡·¯ÀÇ ½É°¢µµ, »óÅÂ¿Í ÇÔ²² ¸Þ½ÃÁö³ª ¸Þ½ÃÁö ID¸¦ Æ÷ÇÔÇÑ´Ù. »óÅ´ SQL ¼­¹ö¿¡¼­ »ç¿ëÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÓÀÇÀÇ ¼ýÀÚ¸¦ ÀÌ¿ëÇØ ó¸®ÇÑ´Ù. ½É°¢µµ´Â ¿¡·¯ÀÇ ½É°¢¼ºÀ» ³ªÅ¸³»´Âµ¥ 0~18Àº »ç¿ëÀÚ°¡ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç 19~25´Â °ü¸®ÀÚ¸¦ À§ÇØ ¿¹¾àµÅ ÀÖ´Ù.

¿¹Á¦ 1. ÀÌ ¿¹Á¦ ÀúÀå ÇÁ·Î½ÃÀú´Â Northwind µ¥ÀÌÅͺ£À̽ºÀÇ °³º° ·¹Äڵ带 ¾÷µ¥ÀÌÆ®Çϴµ¥ ÀÌ ±â´ÉµéÀ» »ç¿ëÇÑ´Ù. ¿¡·¯°¡ ¾øÀ» °æ¿ì ÀüÈ­ ¹øÈ£ Ä®·³ÀÇ °ªÀ» ÇÁ·Î½ÃÀú¸¦ ÅëÇØ ¼öÁ¤ÇÑ´Ù. ¸¸¾à ¿¡·¯°¡ ¹ß»ýÇϸé À½¼ö¸¦, ¿¡·¯°¡ ¾øÀ¸¸é ¾ç¼ö¸¦ µ¹·ÁÁÖ´Â ¸®ÅÏ °ªÀ» »ç¿ëÇÑ´Ù.

ÀúÀå ÇÁ·Î½ÃÀúÀÇ ¸®ÅÏ °ª »ç¿ëÇϱâ
.NET Äڵ忡 ÀúÀå ÇÁ·Î½ÃÀúÀÇ ¸®ÅÏ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. SqlCommand °´Ã¼´Â ÀúÀåµÈ ¸®ÅÏ °ª»Ó¸¸ ¾Æ´Ï¶ó ½±°Ô ÇÁ·Î½ÃÀú¿¡ ÆÄ¶ó¹ÌÅ͸¦ ³Ñ±æ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ÆÄ¶ó¹ÌÅÍÀÇ Direction ¼Ó¼ºÀº ÀúÀå ÇÁ·Î½ÃÀú È£ÃâÀ» ÅëÇÑ ¸®ÅÏ °ªÀ» ¾ò´Âµ¥ »ç¿ëµÇ´Âµ¥, ÀÌ ¼Ó¼ºÀº InputOutput°ú OutputÀÌ µÉ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼­´Â »óÅ °ªÀ» ¹Þ±â À§ÇØ OutputÀ» »ç¿ëÇÏ¿´´Ù.

´ÙÀ½ ¿¹Á¦´Â Northwind µ¥ÀÌÅͺ£À̽ºÀÇ customers Å×À̺íÀÇ Æ¯Á¤ ·¹Äڵ忡 »õ·Î¿î °ªÀ» ÀúÀåÇÏ´Â °£´ÜÇÑ ASP.NET ÆäÀÌÁöÀÌ´Ù. id °ªÀº ½ÇÁ¦·Î´Â hidden Çʵå·Î ÀúÀåµÈ´Ù. formÀ» ÅëÇØ °ªÀ» ½±°Ô ³Ñ±æ ¼ö ÀÖÁö¸¸, µ¥¸ð¸¦ À§ÇØ ¿¹Á¦¿Í °°ÀÌ Çß´Ù. text Çʵ忡 ÀÔ·ÂµÈ °ªÀº phone Çʵ带 ¾÷µ¥ÀÌÆ® Çϴµ¥ »ç¿ëµÈ´Ù.

ÆÄ¶ó¹ÌÅÍ´Â SqlCommand °´Ã¼¿¡ Ãß°¡ÇÒ ¼ö ÀÖÀ¸¸ç ÀúÀå ÇÁ·Î½ÃÀúÀÇ ÆÄ¶ó¹ÌÅÍ °ª°ú Á¤È®È÷ ÀÏÄ¡ÇØ¾ßÇÑ´Ù. ÀÌ ÀÛ¾÷Àº SqlCommand °´Ã¼ÀÇ ExecuteNonQuery¸¦ ÅëÇØ ½ÇÇàµÈ´Ù. À̰ÍÀÌ ½ÇÇàµÇ¸é, ÆÄ¶ó¹ÌÅ͸¦ ÅëÇØ ¸®ÅÏ °ªÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.

´ÙÀ½ ¿¹Á¦´Â ¸®ÅÏ °ªÀ» °Ë»ç Çϰí(-1Àº ¹®Á¦°¡ ÀÖÀ½À» ¶æÇÑ´Ù) Label ÄÁÆ®·Ñ¿¡ ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÑ´Ù. Ãß°¡·Î µ¥ÀÌÅͺ£À̽º ó¸® Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â Ä¡¸íÀûÀÎ ¿¡·¯¸¦ Àâ±â À§ÇØ try/catch ºí·ÏÀÌ »ç¿ëµÇ¾ú´Ù. ¿¹Á¦ 2. ¿¹Á¦ 3Àº °°Àº ÀÛ¾÷À» ÇÏ´Â VB.NET ÄÚµåÀÌ´Ù

ÇÊ¿äÇÑ ¸ðµç °Í Á¦°ø
.NET ¾ÖÇø®ÄÉÀÌ¼Ç Äڵ忡¼­ ¿¹¿Ü¸¦ ó¸®ÇÏ´Â °ÍÀº °£´ÜÇϰí try/catch ÄÚµå ºí·ÏÀ» ÀÌ¿ëÇÑ Á÷°üÀûÀÎ ÀýÂ÷ÀÌ´Ù. ÇÏÁö¸¸, µ¥ÀÌÅͺ£À̽º ºÎºÐ¿¡¼­µµ ¿ª½Ã ¿¹¿Ü¸¦ ¸ð´ÏÅÍ ÇÒ ¼ö Àִµ¥, SQL ¼­¹öÀÇ T-SQLÀº Äڵ带 ½ÇÇàÇϸ鼭 È®ÀÎÇÒ ¼ö ÀÖ´Â ¸ðµç °ÍµéÀ» Á¦°øÇÑ´Ù.@
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
'ÁÖÃãÁÖÃã ¼Ò´Ï' º¸±ÞÇü Ä·ÄÚ´õ ½ÃÀå »ï¼º ¸Í°ø¡¦À¯Æ©ºê ¸ÂÃãÇü 'VM-MX20C' [00:07:48]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[ZDNET ¿µ¹®¹æ¼Û]±¸±Û À¥ºê¶ó¿ìÀú '±¸±Û Å©·Ò' º£Å¸¹öÀü °ø°³ [00:01:29]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
EMC-·¹³ëº¸, ¿Â¶óÀÎ µ¥ÀÌÅÍ ¹é...
SK C&C, ¾È»ê½Ã Áö´ÉÇü±³ÅëÁ¤...
Ä«Æä24 ¼îÇθô ÇØ¿Ü¹è¼Û '½ºÇǵå...
Çѱ¹¾îµµºñ, '¾ÖÅ©·Î¹î 9' ÇѱÛ...
LGÀüÀÚ, 8¹é¸¸ È­¼Ò ¸ÖƼ¹Ìµð¾î...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.