PDA

View Full Version : نحوه قراردادن نام ونوع ستون های جداول sql در excel



zimzim
دوشنبه 21 شهریور 1390, 20:48 عصر
با سلام خدمت دوستان

من می خوام نام ونوع داده ستون های جداولم رو داشته باشم .آیا تو sql دستوری هست که من این نام ونوع داده ستون ها رو تو excel بریزم ؟

ممنوم میشم راهنماییم کنید

Galawij
دوشنبه 21 شهریور 1390, 21:54 عصر
سلام،
با این دستور نام جداول، ستون ها و نوع داده ستون ها را بدست بیارید.
DECLARE @Query varchar(800)
Set @Query='Select O.name AS TableName,C.name AS ColumnName,T.name AS Datatype From systypes AS T inner join syscolumns AS C on T.xtype=C.xtype inner join sysobjects AS O on O.Id=C.id AND O.type=''U'''

حالا برای Export کردن به فایل Excel:
DECLARE @myfile varchar(800)
SET @myfile ='D:\Book1.xlsx'
EXEC('Insert INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0 Xml;HDR=YES;Database='+ @myfile +''', '' SELECT * FROM [Sheet1$]'')'+@Query )


نکته:

شما قبل از اجرای این دستورات، اول باید فایل EXCEL مورد نظر را با سه ستون به نام های TableName,ColumnName,Datatype ایجاد کرده باشید.
این دستورات برای کار با EXCEL ورژن 2007 و2010 کاربرد دارند.
برکت باشد.

oliya24
سه شنبه 22 شهریور 1390, 00:28 صبح
سلام بنده یه مقدار خیلی زیادی از این مبحت خوشم اومده ولی هیچ اطلاعاتی در این مورد ندارم میشه بنده رو در مورد این سوالات راهنمایی بفرمایید
1:اینکه داده ها رو در excel ایمپرت میککند برای چی هستش میشه یه توضیح جامع دهید ؟؟؟؟
2: وقتی ما داده ها رو به داخل اکسل وارد میکنیم برای چیه ؟؟؟ و چطور این کار رو میشه انجام داد ؟؟؟
3:ایا میشه چیزی از اکسل به اس کیو ال سرور وارد کرد ؟؟؟؟ چطوری میشه این کار رو کرد؟؟
ممنون میشم این سوالات رو جواب بدید
باتشکر

Galawij
سه شنبه 22 شهریور 1390, 06:54 صبح
سلام،

1:اینکه داده ها رو در excel ایمپرت میککند برای چی هستش میشه یه توضیح جامع دهید ؟؟؟؟
2: وقتی ما داده ها رو به داخل اکسل وارد میکنیم برای چیه ؟؟؟ و چطور این کار رو میشه انجام داد ؟؟؟
3:ایا میشه چیزی از اکسل به اس کیو ال سرور وارد کرد ؟؟؟؟ چطوری میشه این کار رو کرد؟؟

چون جواب سوالاتون خیلی به هم مربوط هست، با هم جواب می دم.
گاهی وقت ها نیاز هست داده های بانک اطلاعاتی را از فایل EXCEL،ACCESS،HTML، یک فایل اطلاعاتی مجزا، و سایر منابع اطلاعاتی جدا از SQL دریافت کرد. برای این موارد(انتقال داده ها از سایر منابع اطلاعاتی) SQL،از IMPORT/EXPORT (http://www.databasejournal.com/features/mssql/article.php/3580216/SQL-Server-2005-Import--Export-Wizard.htm)استفاده می کند.اما چون در این تاپیک این نحوه انتقال را از طریق دستور خواسته بودند، من با کد این عملیات را نشان دادم.سوال این تاپیک در مورد عملیات EXPORT هست، شما در این تاپیک، (http://barnamenevis.org/showthread.php?304692-ايمپورت-از-اكسل-به-اسكيوال)عملیات IMPORT را هم می توانید مشاهده کنید.

oliya24
سه شنبه 22 شهریور 1390, 16:13 عصر
سلام،

چون جواب سوالاتون خیلی به هم مربوط هست، با هم جواب می دم.
گاهی وقت ها نیاز هست داده های بانک اطلاعاتی را از فایل EXCEL،ACCESS،HTML، یک فایل اطلاعاتی مجزا، و سایر منابع اطلاعاتی جدا از SQL دریافت کرد. برای این موارد(انتقال داده ها از سایر منابع اطلاعاتی) SQL،از IMPORT/EXPORT (http://www.databasejournal.com/features/mssql/article.php/3580216/SQL-Server-2005-Import--Export-Wizard.htm)استفاده می کند.اما چون در این تاپیک این نحوه انتقال را از طریق دستور خواسته بودند، من با کد این عملیات را نشان دادم.سوال این تاپیک در مورد عملیات EXPORT هست، شما در این تاپیک، (http://barnamenevis.org/showthread.php?304692-ايمپورت-از-اكسل-به-اسكيوال)عملیات IMPORT را هم می توانید مشاهده کنید.
دوست من جدا دستت درد نکنه ولی من به یه مشکل برخوردم در حقیقت گیج شدم میتونم از شما خواهش کنم دو مثال ساده یکی برای ایمپرت و یکی برای اکسپرت بزنید
که مثلا 2 فیلد نام و نام خانوادگی رو ایمپرت و اکسپرت کنه ؟؟؟؟؟؟؟ و یه سوال دیگه ای هم که داشتم در مورد ورزن اکسل هست ایا برای این کار از دستور خاصی استفاده میشه؟؟؟
ممنون میشم که این لطف رو در حق اینجانب بکنید
سپاسگزارم

Galawij
سه شنبه 22 شهریور 1390, 19:33 عصر
سلام،
Export Data From SQL To Excel:
DECLARE @myfile varchar(800)
SET @myfile ='D:\Book1.xlsx'
EXEC('Insert INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0 Xml;HDR=YES;Database='+ @myfile +''', '' SELECT * FROM [Sheet1$]'')
Select * From dbo.YourTable')
Import Data From Excel To SQL:

EXEC('Insert INTO dbo.YourTable Select * FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0 Xml;HDR=YES;Database='+ @myfile +''', '' SELECT * FROM [Sheet1$]'')')توضیحات:

شما اول باید یک فایل EXCEL با همان تعداد فیلد تعریف شده در جدولتان ایجاد کرده باشید و در متغیر رشته ای myfile@ آدرس کامل آن را روی هاردتون وارد کنید.
در عملیات Import داده ها از فایل Excel وارد جدول معرفی شده بعد از دستور Insert INTO می شود.
در عملیات Export داده ها از جدول (دستور Select آخر) وارد فایل Excel می شود.
اگر در عملیات Import از قبل جدولی در نظر نگرفته باشیم، از طریق این دستور اقدام به ایجاد یک جدول جدید با تعداد سطرهای موجود در فایل Excel می کند:
EXEC('Select * into dbo.YourTable FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0 Xml;HDR=YES;Database='+ @myfile +''', '' SELECT * FROM [Sheet1$]'')')

و یه سوال دیگه ای هم که داشتم در مورد ورزن اکسل هست ایا برای این کار از دستور خاصی استفاده میشه؟؟؟
بله دوست عزیز در ورژن های مختلف دستورات این اتصال فرق می کند.

برکت باشد، برکت باشیم...