|
°Á Àü Å¿ÀÀÇ Àâ´ã>
°í°í°í... ^^ µðÁöÅÐ ´ÙÀ̾µµ ¸¹ÀÌ »ç¶ûÇØ ÁÖ¼¼¿ë...
°Á ½ÃÀÛ >
ÀÌÀü °Á¿¡ À̾î¼,
ÇÁ·Î½ÃÁ®¿¡ °üÇØ¼´Â ÀÌ ¿Ü¿¡µµ OUTPUTÀ» ¹Þ¾Æ³»´Â ¹æ¹ý°ú Return °ªÀ» ¹Þ¾Æ³»´Â ¹æ¹ýµîÀÌ Á¸ÀçÇÑ´Ù. À̵éÀº °¢°¢ ÇÁ·Î½ÃÁ®¿¡ ÀÎÀÚ°ªÀ» Àü´ÞÇÏ´Â °Í»Ó ¾Æ´Ï¶ó, ¾î¶² °á°ú³ª ¸®ÅϰªÀ» ¹Þ¾Æ³¾ ¼öµµ ÀÖµµ·Ï ÇÏ´Â ¹æ¹ýÀÌ´Ù. À̹ø¿¡´Â ÀÌµé ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¼ Â÷·ÊÀÌ´Ù. ±×·¸´Ù¸é, ¸ÕÀú OUTPUT¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. Äõ¸® ¾Ö³Î¶óÀÌÀú¿¡¼ ´ÙÀ½°ú °°Àº ÇÁ·Î½ÃÁ®¸¦ ¸¸µé¾î º¸ÀÚ. ±½Àº ºÎºÐÀÌ À̹ø ÇÁ·Î½ÃÁ®¿¡ Ãß°¡°¡ µÈ ºÎºÐÀÌ´Ï À¯½ÉÈ÷ ¹Ù¶óº¸±â ¹Ù¶õ´Ù.
|
CREATE
PROC usp_UpdatePrice_Output
@type char(12),
@plus Float,
@MaxPrice Float OUTPUT
AS
Begin
Update titles SET price = price + @plus
Where type = @type
Select @MaxPrice = max(price) from titles Where type = @type
End
|
OUTPUT ¶ó´Â °ÍÀº ÀúÀå ÇÁ·Î½ÃÁ®¿¡°Ô ÀÎÀÚ°ªÀ» Àü´ÞÇÏ´Â °Í¸¸ÀÌ ¾Æ´Ï¶ó µÇµ¹·Á ¹ÞÀ» ¼öµµ ÀÖ°ÔÇϴ Ű¿öµåÀÌ´Ù. À§ÀÇ ½ºÅä¾îµå ÇÁ·Î½ÃÁ®¸¦ º¸¸é ¾Ë°ÚÁö¸¸, À§ÀÇ ³»¿ëÀº ÁöÁ¤ÇÑ Å¸ÀÔÀÇ Ã¥ÀÇ °¡°ÝÀ» ÁöÁ¤ÇÑ ¸¸Å ÀλóÇÑ ÈÄ, ±× ÀλóÇÑ Ã¥Áß¿¡¼ °¡Àå ºñ½Ñ Ã¥ÀÇ °ªÀ» ¸Å°³º¯¼ö·Î½á µ¹·Á¹Þ´Â ³»¿ëÀ» °®´Â´Ù.
µ¹·Á¹ÞÀº °ªÀÇ º¯¼öÀ̸§°ú º¯¼öŸÀÔÀ» ÁöÁ¤ÇÑ ´ÙÀ½,(¿©±â±îÁö´Â ±âÁ¸ÀÇ ÀÔ·ÂÀÎÀÚ¿Í °°´Ù) ÀÌ º¯¼ö´Â °ªÀ» µÇµ¹·Á ¹Þ´Â µ¥¿¡ »ç¿ëÇÑ´Ù´Â Àǹ̷ΠOUTPUT À̶ó´Â Ű¿öµå¸¦ ºÙ¿©ÁØ´Ù. ±×·¸°Ô µÇ¸é, ÀÌ ÀÎÀÚ¸¦ ÅëÇØ¼ ¿ì¸®°¡ ¿øÇÏ´Â °ªÀ» ¾ò¾î¿Ã ¼ö ÀְԵȴÙ.
¼Ò½º¸¦ ¹Ù¶óº¸¸é, ¿ì¸®´Â ƯÁ¤°ªÀ» µÇµ¹¸®±â À§Çؼ @MaxPrice¶ó´Â º¯¼ö¸¦ ÁöÁ¤ÇßÀ½À» º¼ ¼ö°¡ ÀÖ´Ù. ±×¸®°í, ÀÌ º¯¼ö´Â Update ¹®À» ÁøÇàÇÑ ´ÙÀ½ ¾÷µ¥ÀÌÆ®µÈ °ªÁß¿¡¼ °¡Àå Å« °ªÀ» ÀúÀåÇÏ°Ô µÊÀ» º¼ ¼ö°¡ ÀÖ´Ù. ±× ¹®ÀåÀÌ ¹Ù·Î Select @MaxPrice = max(price) from titles Where type = @type ÀÌ´Ù.
ÀÌ·¸°Ô µÇ¸é ¿ì¸®°¡ ÁöÁ¤ÇÑ ÀÎÀÚ°ª¿¡ µû¶ó ÇÁ·Î½ÃÁ®´Â µ¿ÀÛÇϸç, ±× °á°ú Àû¿ëµÈ Ã¥Áß¿¡¼ °¡Àå ºñ½Ñ Ã¥ÀÇ °¡°ÝÀ» @MaxPrice ¶ó´Â º¯¼ö¸¦ ÅëÇØ¼ µÇµ¹·ÁÁÖ°Ô µÈ´Ù. ±×·¸´Ù¸é, ¾î¶»°Ô ±×·¸°Ô ÇÒ ¼ö ÀÖ´ÂÁö ÀÌ ÇÁ·Î½ÃÁ®¸¦ ½ÇÇàÇÏ´Â ¿¹¸¦ º¸µµ·Ï ÇÏÀÚ. ´ÙÀ½ÀÌ ±× ¿¹ÀÌ´Ù.
Declare @MaximumPrice Float
Set @MaximumPrice = 0
EXEC usp_UpdatePrice_Output 'business', 10 , @MaximumPrice OUTPUT
Select @MaximumPrice
À§ÀÇ ±¸¹®ÀÌ ¹Ù·Î ±× µÇµ¹¸²ÀÌ ÀÖ´Â ÇÁ·Î½ÃÁ®¸¦ ¼öÇàÇÏ´Â ¿¹Àε¥, Á¶±ÝÀº º¹ÀâÇØ º¸ÀÌÁö¸¸ ¾Ë°íº¸¸é ±×·¸Áöµµ ¾Ê´Ù. ÇÁ·Î½ÃÁ®¸¦ ¼öÇàÇÏ´Â °Íµµ ÇÁ·Î±×·¥ÀÇ ÀÏÁ¾À̱⿡ ÀÚüÀûÀÎ ¹®¹ýµµ ÀÖ°í, º¯¼ö¸¦ »ç¿ëÇÏ°Ô µÇ¸é º¯¼öÀÇ ¼±¾ðµµ ÇÊ¿äÇÏ´Ù.(SQL¼¹öÀÇ ÀÌ ÇÁ·Î±×·¡¹ÖÀ» T-SQLÀ̶ó°í ÇÑ´Ù) ¿ì¸®°¡ ÀÌ µÇµ¹¸²ÀÌ ÀÖ´Â ÇÁ·Î½ÃÁ®¸¦ »ç¿ëÇÏ´Â ½ÇÁ¦ÀûÀÎ ±¸¹®Àº À§¿¡¼ ±½°Ô ó¸®ÇÑ ´ÙÀ½ ±¸¹®ÀÌ´Ù.
EXEC usp_UpdatePrice_Output 'business', 10 , @MaximumPrice OUTPUT
ÇÏÁö¸¸, ÀÌ ±¸¹®¿¡´Â @MaximumPrice ¶ó´Â º¯¼ö°¡ »ç¿ëµÇ¾îÁø´Ù. ±×·¸±â¿¡ º¯¼öÀÇ ¼±¾ð°ú º¯¼öÀÇ ÃʱâȰ¡ ÇÊ¿äÇÏ´Ù. ÇØ¼
Declare @MaximumPrice Float
Set @MaximumPrice = 0
ÀÌ µÎ ÁÙÀÌ ¸ÕÀú ¼±ÇàµÇ¾îÁø °ÍÀÌ´Ù. ±×¸®°í, ½ÇÁ¦ ÇÁ·Î½ÃÁ® ½ÇÇ౸¹®À» ±¸µ¿ÇÑ´Ù. ±×·¸°Ô µÇ¸é ÇÁ·Î½ÃÁ®´Â µ¿ÀÛÇÒ °ÍÀ̸ç, Ã¥ Áß¿¡¼ Business ŸÀÔÀΠåµéÀÇ °¡°ÝÀ» 10 ´Þ·¯¾¿ Áõ°¡½Ãų °ÍÀÌ´Ù. ±×¸®°í, ÀÌ¹Ì ¿ì¸®°¡ ÀÛ¼ºÇÑ´ë·Î ÀÌ ¾÷µ¥ÀÌÆ®µÈ °¡°Ý Áß¿¡¼ °¡Àå ºñ½Ñ °¡°ÝÀ» @MaximumPrice ¶ó´Â º¯¼ö¸¦ ÅëÇØ¼ µ¹·ÁÁÙ °ÍÀÌ´Ù. ÀÌÁ¦ ¿ì¸®°¡ ÇÒ ÀÏÀº ±× µ¹·Á¹ÞÀº °ªÀÌ ¾ó¸¶ÀÎÁö È®ÀÎÇÏ´Â ÀÏÀÌ´Ù. ÇÊÀÚÀÇ °æ¿ì ÇÁ·Î½ÃÁ® ¼öÇàÀüÀÇ °¡°ÝÀº 33.988 À̾úÀ¸¸ç, ¼öÇà ÈÄÀÇ °¡°ÝÀº 43.988 ÀÌ µÇ¾ú´Ù.
|
Âü°í : ÇÁ·Î½ÃÁ®¸¦ »èÁ¦ÇÏ´Â ¹æ¹ýÀº?
¾î¼¸é Delete¸¦ »ý°¢Çß¾úÀ»Áö ¸ð¸£°Ú´Ù. ÇÏÁö¸¸, ½ÇÀº DropÀÌ´Ù.
Drop PROC usp_UpdatePrice_Output °ú °°ÀÌ ½ÇÇàÇϸé ÇÁ·Î½ÃÁ®¸¦ ¾ø¾Ù ¼ö ÀÖ´Ù.
|
Á¶±ÝÀº ¹æ¹ýÀÌ º¹ÀâÇØ º¸ÀÌÁö¸¸, À̰ÍÀº T-SQLÀ» »ç¿ëÇÒ °æ¿ìÀÇ Å×½ºÆ® ¹æ¹ýÀ̸ç, ASP¿¡¼´Â ³ª¸§´ë·ÎÀÇ »ç¿ë¹æ¹ýÀÌ µû·Î Á¸ÀçÇÑ´Ù.
|
T-SQLÀ̶õ?
MS SQL ¼¹ö¿¡¼ »ç¿ëÀÌ °¡´ÉÇÑ È®ÀåÇü SQL ·Î½á, SQL Ç¥ÁØÀ» µû¸£¸é¼ ³ª¸§´ë·Î ÀÚ½ÅÀ» È®Àå½ÃÄÑ Á»´õ ¼¼¼¼ÇÏ°Ô ¿©·¯ Á¤º¸¸¦ ´Ù·ê ¼ö ÀÖ°Ô ÇÑ ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÑ È®ÀåµÈ SQLÀ̶ó°í º¼ ¼ö ÀÖ´Ù.
|
»ç½Ç, °á°ú¸¦ µÇµ¹·Á ¹Þ±â À§Çؼ´Â OUTPUT¸¦ »ç¿ëÇÏÁö ¾Ê°í, ±×³É Select ¹®À¸·Î ·¹ÄÚµå¼Â ÀÚü¸¦ ³Ñ±æ ¼öµµ ÀÖ´Ù. À§ÀÇ ÇÁ·Î½ÃÁ®´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇØµµ °°Àº °á°ú¸¦ ³ªÅ¸³»°Ô µÉ °ÍÀÌ´Ù.
|
CREATE PROC usp_UpdatePrice_Output
@type char(12),
@plus Float,
AS
Begin
Update titles SET price = price + @plus Where type =
@type
Select max(price) from titles Where type = @type
End
|
ÀÌ·¸°Ô µÇ¸é, OUTPUT ÀÎÀÚ¾øÀ̵µ ·¹Äڵ带 ¹ÝȯÇÒ ¼ö°¡ ÀÖ´Ù. OUTPUT ÀÇ °æ¿ì´Â ¿ÀÁ÷ ÇϳªÀÇ °ªÀ» ¸®ÅÏÇÒ °æ¿ì À¯¸®Çϸç, ¸¹Àº ·¹Äڵ带 ¸®ÅÏÇÏ°í ½ÍÀ» °æ¿ì´Â ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. »ç½Ç OUTPUTÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ±×¸® ÀÚÁÖ »ç¿ëµÇ´Â ¹æ¹ýÀº ¾Æ´Ï´Ù.
|
ÇÁ·Î½ÃÁ®³»ÀÇ Begin °ú End ¶õ ¹«¾ùÀΰ¡?
ÀÌ´Â ±¸¹®ÀÇ ½ÇÇà°ú ³¡À» ¾Ë¸®´Â ¿ªÇÒÀ» Çϴ Ű¿öµåÀÌ´Ù. ½ÇÇà¸í·ÉÀÌ ÇÑÁÙ·Î ³¡³ªÁö ¾Ê°í, ¿©·¯ ¶óÀο¡ °ÉÃÄ ¿©·¯ ¸í·ÉÀ» ¼öÇàÇØ¾ßÇÏ´Â °æ¿ì ±× ±¸¿ªÀ» ¸ðµÎ ¼öÇàÇ϶ó´Â Àǹ̷ΠBeginÀ¸·Î ½ÃÀÛÇÏ¿© End·Î ¸ÎÀ½Çϰí ÀÖ´Â °ÍÀÌ´Ù. ¸¶Ä¡ ÀÚ¹Ù½ºÅ©¸³Æ®³ª C++¿¡¼ { }¿Í °°Àº ÀǹÌÀÌ´Ù. T-SQL ¿¡¼´Â ±×¸¦ Begin°ú End ¶ó´Â Ű¿öµå·Î½á ±¸ºÐÇÏ°Ô Çϰí ÀÖ´Ù. ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ T-SQLµµ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ¼ÓÇϱ⿡ ÀÌ ¶ÇÇÑ ÀڽŸ¸ÀÇ ¹®¹ýÀ» °¡Áö°í ÀÖ´Ù.
|
¶Ç, ´Ù¸£°Ô °ªÀ» µÇµ¹¸± ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î´Â RETURN ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ´Â »ç½Ç ÇÁ·Î½ÃÁ®¸¦ ¸¶Ä¡¸é¼ ¶Ç´Â, ºñÁ¤»ó Á¾·áÇÏ¸é¼ Return°ªÀ» ÁöÁ¤Çؼ ÀÌ ÇÁ·Î½ÃÁ®¸¦ È£ÃâÇÑ Å¬¶óÀÌ¾ðÆ®°¡ ÇöÀç ¾î¶»°Ô Á¾·áµÇ¾ú´ÂÁöµîÀ» ÆÇ´ÜÇÏ°Ô Çϱâ À§ÇÑ ¼ö´ÜÀ¸·Î »ç¿ëµÇ¸ç, 󸮰á°ú¸¦ °£´ÜÈ÷ ¾Ë¸®´Âµ¥ »ç¿ëµÇ¾îÁö°Ô µÈ´Ù. ÁÖÀÇÇÒ °ÍÀº ¸®ÅÏ °ªÀº Á¤¼ö¸¸ÀÌ °¡´ÉÇÏ´Ù. (ÁÖ·Î 1 ¾Æ´Ï¸é 0ÀÌ´Ù.)
´ÙÀ½Àº ReturnÀ» »ç¿ëÇÏ´Â ÇÁ·Î½ÃÁ®ÀÇ ¿¹ÀÌ´Ù. ÀÌ ÇÁ·Î½ÃÁ®´Â business Ã¥ Áß¿¡ °¡Àå ºñ½Ñ Ã¥ÀÇ °¡°ÝÀ» ÀλóÇϱâ ÀÌÀü¿¡ ±× Ã¥ÀÇ °¡°ÝÀÌ 50 ´Þ·¯ ÀÌ»óÀ̶ó¸é Ã¥ °ªÀ» ´õ ÀÌ»ó ÀλóÇÏÁö ¾Ê°í 0À» ¸®ÅÏÇÏ°Ô µÇ¸ç, ¾ÆÁ÷ 50´Þ·¯ ¹Ì¸¸À̶ó¸é °¡°ÝÀ» ÀλóÇÑ µÚ¿¡ 1 À̶ó´Â °ªÀ» ¸®ÅÏÇÏ°Ô µÉ °ÍÀÌ´Ù.
|
CREATE PROC usp_UpdatePrice_Return
@type char(12),
@plus Float
AS
Begin
Declare @Check int
Select @Check =
Max(price) from titles Where type =
@type
if
@Check < 50
Begin
Update titles SET price = price + @plus
Where type = @type
Select @Check = 1
End
Else
Select @Check = 0
Return @Check
End
|
±×·¯¸é, ÀÌ ±¸¹®À» ½ÇÇàÇØ¼ °á°ú¸¦ ¾ò¾î¿À·Á¸é ¾î¶»°Ô ÀÌ ±¸¹®À» ½ÇÇàÇØ¾ß ÇÒ±î?
Declare @rtn int
EXEC @rtn = usp_UpdatePrice_Return 'business', 10
Select @rtn
ÀÌ ¹Ù·Î ±×°ÍÀÌ´Ù. OUTPUTÀÇ °æ¿ì¿Í ºñ±³ÇßÀ» ¶§, ¾à°£ÀÇ Â÷À̰¡ ÀÖ´Ù. ±¸¹®ÀÇ °æ¿ì´Â OUTPUT ÀÇ °æ¿ì¿Í´Â ´Þ¸® µ¹·Á¹ÞÀº °ªÀÇ º¯¼öÀ̸§Àº ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×¸®°í, ½ÇÇà½Ã¿¡´Â ¸®ÅϰªÀ» ¹Þ±âÀ§ÇØ, ÇÁ·Î½ÃÁ® À̸§ ¾Õ¿¡¼ ÇÁ·Î½ÃÁ®ÀÇ °á°ú¸¦ ´ëÀÔÇÏ´Â ¸ð½ÀÀ» ¶è @rtn = usp_UpdatePrice_Return °¡ ÀλóÀûÀÌ´Ù. ¾î·Á¿ï °ÍÀº ¾ø´Ù. OUTPUT º¸´Ù´Â Á¶±ÝÀº ´Ü¼øÇÑ ¸ð½ÀÀ» ¶ç°í ÀÖÀ¸´Ï ¸»ÀÌ´Ù.
Áö±ÝÀÇ ¿¹´Â ¹º°¡ Çö½ÇÀûÀÌÁö´Â ¸øÇÏÁö¸¸, ¿©·¯ºÐÀº ¿©·¯ °¡Áö ¸ð½ÀÀ¸·Î ÀÌ·¯ÇÑ Return °ªÀ» °¡Áö´Â ÇÁ·Î½ÃÁ®¸¦ ±¸¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¸é, ȸ¿ø°¡ÀԽà ÇöÀç µî·ÏÇϰíÀÚ ÇÏ´Â »ç¶÷ÀÇ ¾ÆÀ̵𰡠ÀÌ¹Ì Á¸ÀçÇÏ´ÂÁöÀÇ ¿©ºÎ¸¦ Ã¼Å©ÇØ¼ Á¸ÀçÇÑ´Ù¸é 1, ¾Æ´Ï¶ó¸é 0À» ¸®ÅÏÇÏ¿© ó¸®ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
Á¶±ÝÀº ºÎÁ·ÇÑ µí ÇÏÁö¸¸, ½ºÅä¾îµå ÇÁ·Î½ÃÁ®ÀÇ »ç¿ë¹ý¿¡ ´ëÇØ¼ ¿ì¸®´Â ¾Ë¾Æº¸¾Ò´Ù. À̵éÀº °£´ÜÇÏÁö¸¸ °¡Àå ±âº»ÀûÀÎ ÇÁ·Î½ÃÁ®ÀÇ »ç¿ë¿¹ÀÌ´Ï Àû¾îµµ ÀÌ Á¤µµ´Â ÀÌÇØÇϰí ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ, ´õ¿í ÀÚ¼¼ÇÑ ½ºÅä¾îµå ÇÁ·Î½ÃÁ®¿¡ ´ëÇÑ ³»¿ëÀº °ü·Ã¼ÀûÀ» ÅëÇØ¼ ¾òÀ¸¼Å¾ß ÇÑ´Ù. ÀÌ ½ºÅä¾îµå ÇÁ·Î½ÃÁ®¸¦ ÀÛ¼ºÇÏ´Â ±¸¹®À̳ª ¹®¹ý¿¡ ´ëÇØ¼´Â T-SQL ¹®À» ¶ÇÇÑ, µû·Î °øºÎÇÏ¼Å¾ß ÇÑ´Ù.
¿©·¯ºÐÀÇ ¸¶À½Àº ÇÊÀÚµµ ¾Ë°í ÀÖ´Ù. ¿©±â¼ T-SQL ¹®¹ýÀ̳ª ±¸¹®¿¡ ´ëÇØ¼µµ ¾Ë·ÁÁÖ¾úÀ¸¸é ÇÑ´Ù´Â °ÍÀ» ¸»ÀÌ´Ù.
ÇÏÁö¸¸, ±×°ÍÀÌ ±×¸® ½±Áö ¾ÊÀº °ÍÀÌ T-SQLÀº ±×°Í¸¸À¸·Îµµ µÎ²¨¿î Ã¥ ÇѱÇÀÌ´Ù. ¿ª½Ã ±×µµ ÇϳªÀÇ ¾ð¾îÀ̱⠶§¹®ÀÌ´Ù.
ÇØ¼, ±×¸¦ ¿©±â¼ ¼³¸íÇÑ´Ù´Â °ÍÀº ¹«¸®°¡ ÀÖ´Ù. ±×¿¡ ´ëÇÑ Áö½ÄÀº ¿©·¯ºÐÀÌ ÇÊ¿äÇÑ ¸¸Å SQL ¼¹ö Ã¥À̳ª T-SQL Ã¥
³»Áö´Â SQL Books OnlineÀ» ÅëÇØ¼ ¾òÀ¸¼Å¾ß¸¸ ÇÑ´Ù.
ÀÌ Áö½ÄÀº ¿©·¯ºÐÀÌ ASP ¿¡¼ ADO Command °³Ã¼¸¦ »ç¿ëÇϰíÀÚ ÇÒ °æ¿ì³ª, ADO.NETÀÇ
Command °ü·Ã °³Ã¼µéÀ» »ç¿ëÇÒ °æ¿ì ¾ÆÁÖ À¯¿ëÇÑ Áö½ÄÀÌ µÇ¾îÁÙ °ÍÀ̶ó ¹Ï¾î ÀǽÉÄ¡
¾Ê´Â´Ù.
Back
|