Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टी-एसक्यूएल:नई एक्सेल फाइल में निर्यात करें

SQL से एक्सेल में एक्सपोर्ट करने के लिए यह अब तक की सबसे अच्छी पोस्ट है:

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID =49926

उपयोगकर्ता madhivanan . से उद्धरण के लिए ,

DTS और एक्सपोर्ट विजार्ड का उपयोग करने के अलावा, हम इस क्वेरी का उपयोग SQL Server2000 से एक्सेल में डेटा निर्यात करने के लिए भी कर सकते हैं

टेस्टिंग नाम की एक एक्सेल फाइल बनाएं जिसमें हेडर टेबल कॉलम के समान हों और इन प्रश्नों का उपयोग करें

1 SQL सर्वर तालिका से मौजूदा EXCEL फ़ाइल में डेटा निर्यात करें

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;', 
    'SELECT * FROM [SheetName$]') select * from SQLServerTable

2 एक्सेल से नई SQL सर्वर तालिका में डेटा निर्यात करें

select * 
into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [Sheet1$]')

3 एक्सेल से मौजूदा SQL सर्वर तालिका में डेटा निर्यात करें (संपादित)

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [SheetName$]')

4 यदि आप पहले से एक एक्सेल फ़ाइल नहीं बनाना चाहते हैं और उसमें डेटा निर्यात करना चाहते हैं, तो उपयोग करें

EXEC sp_makewebtask 
    @outputfile = 'd:\testing.xls', 
    @query = 'Select * from Database_name..SQLServerTable', 
    @colheaders =1, 
    @FixedFont=0,@lastupdated=0,@resultstitle='Testing details'

(अब आप सारणीबद्ध प्रारूप में डेटा वाली फ़ाइल पा सकते हैं)

5 शीर्षक (कॉलम नाम) के साथ नई एक्सेल फ़ाइल में डेटा निर्यात करने के लिए, निम्नलिखित प्रक्रिया बनाएं

create procedure proc_generate_excel_with_columns
(
    @db_name    varchar(100),
    @table_name varchar(100),   
    @file_name  varchar(100)
)
as

--Generate column names as a recordset
declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100)
select 
    @columns=coalesce(@columns+',','')+column_name+' as '+column_name 
from 
    information_schema.columns
where 
    [email protected]_name
select @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''')

--Create a dummy file to have actual data
select @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls'

--Generate column names in the passed EXCEL file
set @sql='exec master..xp_cmdshell ''bcp " select * from (select '[email protected]+') as t" queryout "'[email protected]_name+'" -c'''
exec(@sql)

--Generate data in the dummy file
set @sql='exec master..xp_cmdshell ''bcp "select * from '[email protected]_name+'..'[email protected]_name+'" queryout "'[email protected]_file+'" -c'''
exec(@sql)

--Copy dummy file to passed EXCEL file
set @sql= 'exec master..xp_cmdshell ''type '[email protected]_file+' >> "'[email protected]_name+'"'''
exec(@sql)

--Delete dummy file 
set @sql= 'exec master..xp_cmdshell ''del '[email protected]_file+''''
exec(@sql)

प्रक्रिया बनाने के बाद, डेटाबेस नाम, तालिका नाम और फ़ाइल पथ की आपूर्ति करके इसे निष्पादित करें:

EXEC proc_generate_excel_with_columns 'your dbname', 'your table name','your file path'

यह 29 पृष्ठों का है, लेकिन ऐसा इसलिए है क्योंकि अन्य कई अन्य तरीके दिखाते हैं और साथ ही लोग इसे कैसे करते हैं, इस तरह के प्रश्न पूछते हैं।

उस धागे का पूरी तरह से पालन करें और लोगों द्वारा पूछे गए विभिन्न प्रश्नों को देखें और उन्हें कैसे हल किया जाता है। मैंने केवल इसे स्किमिंग करते हुए काफी ज्ञान प्राप्त किया है और अपेक्षित परिणाम प्राप्त करने के लिए इसके कुछ हिस्सों का उपयोग किया है।

एकल सेल अपडेट करने के लिए

वहां एक सदस्य भी पीटर लार्सन निम्नलिखित पोस्ट करता है:मुझे लगता है कि यहां एक बात याद आ रही है। एक्सेल फ़ाइलों को निर्यात और आयात करने में सक्षम होना बहुत अच्छा है, लेकिन एकल कक्षों को अपडेट करने के बारे में कैसे? या कई सेल?

आप इसे कैसे प्रबंधित करते हैं, इसका यही सिद्धांत है

update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=c:\test.xls;hdr=no', 
'SELECT * FROM [Sheet1$b7:b7]') set f1 = -99

आप इसका उपयोग करके एक्सेल में सूत्र भी जोड़ सकते हैं:

update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=c:\test.xls;hdr=no', 
'SELECT * FROM [Sheet1$b7:b7]') set f1 = '=a7+c7'

T-SQL का उपयोग करके कॉलम नामों के साथ निर्यात करना

सदस्य म्लादेन प्राजदिक के पास यह कैसे करना है इस पर एक ब्लॉग प्रविष्टि भी है यहाँ

संदर्भ:www.sqlteam.com (बीटीडब्ल्यू एसक्यूएल सर्वर से अधिक प्राप्त करने वाले किसी भी व्यक्ति के लिए यह एक उत्कृष्ट ब्लॉग/मंच है)। त्रुटि संदर्भ के लिए मैंने उपयोग किया यह

त्रुटियां जो हो सकती हैं

अगर आपको निम्न त्रुटि मिलती है:

फिर इसे चलाएँ:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर फुलटेक्स्ट खोज मेरी पंक्तियों को नहीं ढूंढ रहा है

  2. फोन के लिए एसक्यूएल वर्कर (लंबाई) में मुझे दुनिया भर में सबसे लंबे समय तक संभावित फोन नंबर पर विचार करना चाहिए

  3. Microsoft SQL Server 2008 प्रबंधन स्टूडियो - कनेक्ट/सर्वर/इंस्टेंस समस्या

  4. एसक्यूएल फुलटेक्स्ट 'शामिल' फ़ंक्शन के अंदर आप डबल कोट्स से कैसे बचते हैं?

  5. टी-एसक्यूएल सीटीई भौतिकीकरण तकनीक एसक्यूएल सर्वर 2012 पर काम नहीं कर रही है