|
µ¥ÀÌÅ͸¦ SQL Server·Î °¡Á®¿À±â À§ÇÑ ¿©·¯ ¹æ¹ýµé
¿øº» : http://sqlserverblogs.blogspot.com/2007/04/sharing-knowledge-import-and-export.html
µ¥ÀÌÅ͸¦ SQL Server·Î ¿Å±â´Â ÀÛ¾÷Àº ´ëºÎºÐÀÇ DBA³ª °³¹ßÀÚ°¡ ÀÏ»óÀûÀ¸·Î Á¢ÇÏ´Â ¾÷¹«ÀÔ´Ï´Ù. °¡Àå ´Ü¼øÇÑ ¹æ¹ýÀ¸·Î °¡Á®¿À±â/³»º¸³»±â ¸¶¹ý»ç¸¦ ÀÌ¿ëÇϰųª SQL 2000ÀÇ DTS³ª SQL 2005ÀÇ SSIS¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. º» ±Û¿¡¼´Â ÀÌ·¯ÇÑ ¹æ¹ý ¿Ü¿¡ ¼öÇàÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¹æ¹ýµé¿¡ ´ëÇØ »ìÆì º¸°Ú½À´Ï´Ù.
BCP
°¡Àå ³Î¸® »ç¿ëµÇ´Â ¸í·ÉÀÔ´Ï´Ù. BCP ¸í·ÉÀº µ¥ÀÌÅ͸¦ ÀÔ·Â(Import)Çϰųª Ãâ·Â(Export)Çϴµ¥ ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ÅØ½ºÆ® ÇüÅÂÀÇ µ¥ÀÌÅÍ¿¡ ´ëÇØ¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À©µµ¿ì ¸í·É ÇÁ·ÒÇÁÆ®¿¡¼ ¼öÇàÇϸç, SQLÀÇ Äõ¸® ºÐ¼®±â³ª ÀúÀå ÇÁ·Î½ÃÀú¿¡¼ xp_cmdshell ¸í·ÉÀ» ÀÌ¿ëÇØ¼ È£ÃâÇϰųª DTS, SSIS ³»¿¡¼ È£ÃâÇÏ´Â ¹æ½ÄÀ¸·Î ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½Àº C:\ImportData.txt¸¦ dbo.ImportTest Å×À̺í·Î ¿Å±â´Â ¿¹ ÀÔ´Ï´Ù.
|
bcp dbo.ImportTest in 'C:\ImportData.txt' -T -SserverName\instanceName
|
(BCP ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
BULK INSERT
BULK INSERT¹®Àº T-SQLÀ» ÀÌ¿ëÇØ¼ Á÷Á¢ µ¥ÀÌÅ͸¦ SQL ServerÀÇ Å×À̺í·Î ÀúÀåÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¸í·ÉÀÔ´Ï´Ù.
´ÙÀ½Àº C:\ImportData.txt µ¥ÀÌÅÍ ÆÄÀÏÀ» dbo.ImportTest Å×À̺í·Î ¿Å±â´Â ¿¹ ÀÔ´Ï´Ù.
|
BULK INSERT dbo.ImportTest FROM 'C:\ImportData.txt'
WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )
|
(BULK INSERT ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
OPENROWSET
ÀÌ ¸í·É¾î´Â ´Ù¸¥ µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ Á÷Á¢ Äõ¸®¸¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â T-SQL ¸í·ÉÀÔ´Ï´Ù. INSERT INTO ¸í·É°ú °°ÀÌ »ç¿ëÇÔÀ¸·Î½á ¿ÜºÎÀÇ µ¥ÀÌÅ͸¦ SQL ServerÀÇ Å×À̺í·Î ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â C:\InportData.xls ¿¢¼¿ ÆÄÀÏÀÇ [Sheet1$] ½ÃÆ®¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ dbo.ImportTest Å×À̺í·Î ¿Å±â´Â ¿¹ ÀÔ´Ï´Ù.
|
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', [Sheet1$])
|
[Sheet1$] ½ÃÆ® ¸íÀ» Á÷Á¢ ÁöÁ¤ÇÏ´Â ´ë½Å ´ÙÀ½°ú °°ÀÌ SELECT * FROM ¸í·ÉÀ» ÀÌ¿ëÇØ¼ µ¥ÀÌÅ͸¦ Àоî¿Àµµ·Ï ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ» ÀÌ¿ëÇÏ¸é µ¥ÀÌÅ͸¦ Àоî¿Ã ¶§ ¿øÇÏ´Â µ¥ÀÌÅ͸¸À» Àоî¿À°Å³ª ¿À» °¡°øÇؼ Àоî¿Ã ¼ö ÀÖ½À´Ï´Ù.
|
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]')
|
(ÆíÁýÀÚ ÁÖ : ¿¢¼¿¿¡¼ µ¥ÀÌÅ͸¦ Àоî¿À´Â SQLÀº ÀÏ¹Ý SQL Server¿¡¼ »ç¿ëÇÏ´Â SQL¹®°ú ºñ½ÁÇÏÁö¸¸, ÀϺΠ¸í·É¿¡¼ Â÷À̰¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ ¸µÅ©ÀÇ ±ÛÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
(BULK INSERT ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
OPENDATASOURCE
OPENROWSET°ú ºñ½ÁÇÑ ¹æ½ÄÀ¸·Î ¼öÇàµÇ¸ç, INSERT INTO ¸í·É°ú °°ÀÌ »ç¿ëÇÔÀ¸·Î½á µ¥ÀÌÅ͸¦ Å×À̺í·Î ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
INSERT INTO dbo.ImportTest
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
|
(OPENDATASOURCE ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
OPENQUERY
OPENQUERY ¸í·ÉÀ» ÀÌ¿ëÇØ¼ µ¥ÀÌÅ͸¦ °¡Á®¿À±â À§Çؼ´Â µÎ ´Ü°è°¡ ÇÊ¿äÇÕ´Ï´Ù. ¿ì¼± ¿¬°áµÈ ¼¹ö(Linked Server)¸¦ ±¸¼ºÇØ¾ß Çϸç, ±¸¼ºµÈ ¼¹ö Á¤º¸¸¦ ÀÌ¿ëÇØ¼ µ¥ÀÌÅ͸¦ Àоî¿Í¾ß ÇÕ´Ï´Ù.
|
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'C:\ImportData.xls', NULL, 'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT * FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')
|
(OPENQUERY ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
Linked Server
¿¬°áµÈ ¼¹ö(Linked Server)¸¦ ÀÌ¿ëÇÏ´Â °Í ¿ª½Ã ¿ÜºÎ µ¥ÀÌÅ͸¦ Àоî¿À´Â ¹æ¹ý Áß ÇϳªÀÔ´Ï´Ù. OPENQUERY ¿¡¼¿Í °°ÀÌ ¿¬°áµÈ ¼¹ö¸¦ ±¸¼ºÇÑ ÈÄ, SQL ¹®¿¡¼ Á÷Á¢ °¡Á®¿À´Â ¹æ½ÄÀÔ´Ï´Ù.
|
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'C:\ImportData.xls', NULL, 'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT * FROM ImportData...Sheet1$
|
(Linked Server ¸í·É¿¡ ´ëÇØ º¸´Ù ÀÚ¼¼ÇÑ °ÍÀ» ¾Ë°í ½ÍÀ¸¸é ´ÙÀ½ ¸µÅ©ÀÇ µµ¿ò¸»À» Âü°íÇϽñ⠹ٶø´Ï´Ù.)
|
ÇϳªÀÇ µ¥ÀÌÅ͸¦ °¡Á®¿À´Â µ¥¿¡µµ ¿©·¯ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¾î¶² °ÍÀÌ Àý´ëÀûÀ¸·Î °¡Àå ¿ì¼öÇÏ°í ¾î¶² °ÍÀÌ ³ª»Û °ÍÀº ¾ø½À´Ï´Ù. Ç×»ó ³ª»Û °ÍÀ̾úÀ¸¸é ¹öÀüÀÌ 7.0, 2000, 2005·Î ¹ßÀüµÇ¸é¼ Á¦°ÅµÇ¾úÀ» °ÍÀÔ´Ï´Ù.
OPENROWSETÀ̳ª OPENDATASOURCE°¡ OPENQUERY¿¡ ºñÇØ ¿¬°áµÈ ¼¹ö¸¦ ±¸¼ºÇÏ´Â ´Ü°è°¡ ¾ø±â ¶§¹®¿¡ °£´ÜÇÒ ¼ö´Â ÀÖÀ¸³ª °¡Á®¿Ã ÆÄÀϸíÀ̳ª ¾ÏÈ£ µîÀÌ ³ëÃâµÇ¾î¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¸¸¾à Linked Server°¡ ±¸¼ºµÈ °÷À̶ó¸é °£´ÜÈ÷ OPENQUERY³ª Linked Server¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ´õ ÁÁÀ» °ÍÀÔ´Ï´Ù.
SQL Agent°¡ ¼³Ä¡µÇÁö ¾ÊÀº °÷¿¡¼ Windows ¿¹¾à ÀÛ¾÷¸¸À¸·Î ¸í·ÉÀ» ¼öÇàÇϱâ À§Çؼ´Â BCP ¸í·ÉÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÃÖÀûÀÏ °ÍÀÔ´Ï´Ù.
ÀÌ¿Í °°ÀÌ ´Ù¾çÇÑ »óȲ¿¡ µû¶ó ¼öÇàÇÒ ¼ö ÀÖ´Â ¸í·ÉµéÀÌ Àֱ⠶§¹®¿¡ À§¿¡¼ ¼³¸íÇÑ ´Ù¾çÇÑ ¹æ¹ýµéÀ» ¹Ì¸® ÀÍÇô ³õÀ» Çʿ䰡 ÀÖÀ» °ÍÀ̶ó »ý°¢µÇ¾î ºí·Î±×ÀÇ ±ÛÀ» °£´ÜÈ÷ ¹ø¿ª, Á¤¸®ÇÏ¿´½À´Ï´Ù.
|
º» °Ô½ÃÆÇ¿¡ ½Ç¸° ±ÛÀº ´©±¸³ª º¹»çÇϼż ÀÌ¿ëÇϼŵµ µÇÁö¸¸, ¹Ýµå½Ã Ãâó(SQLLeader.com) ¹× ¸µÅ©¸¦ ¹àÇôÁÖ¼Å¾ß ÇÕ´Ï´Ù.
|