sqlserver數據導出sql
㈠ 如何將sqlserver表中的數據導出sql語句或生成insert into語句
我是這樣做的,參考如下語句
select 'insert into table(column,column,column) values('+id+',''' + name+''','''+url+''')'
from table
其中,兩個單引號表示一個引號的意思。生成數據列表後樣式
insert into table(column,column,column) values(00101,'XXXXX,'XXXXXX')
insert into table(column,column,column) values(00102,'XXXXX','XXXXXX')
復制語句 執行即可。
我當初測試系統配置數據就是這樣弄到正式機的,將數據弄成文本形式的SQL,僅供參考。
㈡ SQLServer中導入導出數據的三種方式(一)
在我們建立一個資料庫時,並且想將分散在各處的不同類型的資料庫分兆棚裂類匯總在這個新建的資料庫中時,尤其是在進行數據檢驗、凈化和轉換時,將會面臨很大的挑戰。幸好SQL Server為我們提供了強大、豐富的數據導入導出功能,並且在導入導出的同時可以對數據進行靈活的處理。
在SQL Server中主要有三族閉種方式導入導出數據:使用Transact-SQL對數據進行處理;調用命令行工具BCP處理數據;使用數據轉換服務(DTS)對數據進行處理。這三種方法各有其特點,下面就它們的主要特點進行比較。
一、使用方式的比較
1. 使用Transact-SQL進行數據導入導出
我們很容易看出,Transact-SQL方法就是通過SQL語句方式將相同或不同類型的資料庫中的數據互相導入導出或者匯集在一處的方法。如果是在不同的SQL Server資料庫之間進行數據導入導出,那將是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM時INTO後跟的表必須存在,也就是說它的功能是在導數據之前先建立一個空表,然後再將源表中的數據導入到新建的空表中,這就相當於表的復制(並不會復製表的索引等信息)。而INSERT INTO的功能是將源數據插入到已經存在的表中,可以使用它進行數據合並,如果要更新已經存在的記錄,可以使用UPDATE。
SELECT * INTO table2 FROM table1
--table1和table2的表結構相同
INSERT INTO table2 SELECT * FROM table3
--table2和table3的表結構相同
當在異構資料庫之間的進行數據導入導出時,情況會變得復雜得多。首先要解決的是如何打開非SQL Server資料庫的問題。
在SQL Server中提供了兩個函數可以根據各種類型資料庫的OLE DB Provider打開並操作這些資料庫,這兩個函數是OPENDATASOURCE和OPENROWSET。它們的功能基本上相同,不同之處主要有兩點。
(1) 調用方式不同。
OPENDATASOURCE的參數有兩個,分別是OLE DB Provider和連接字元串。使用OPENDATASOURCE只相當於引用資料庫或者是服務(對於SQL Server、Oracle等資料庫來說)。要想引用其中的和搭數據表或視圖,必須在OPENDATASOURCE(...)後進行引用。
在SQL Server中通過OPENDATASOURCE查詢Access資料庫abc.mdb中的table1表
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=abc.mdb;Persist Security
Info=False')...
table1
OPENROWSET相當於一個記錄集,可以將直接當成一個表或視圖使用。
在SQL Server中通過OPENROWSETE查詢Access資料庫abc.mdb中的table1表
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'abc.mdb';
'admin';'','SELECT * FROM table1')
㈢ sqlserver怎麼導出資料庫
數據導出步驟
1
打
開SQL Server Management Studio,在對象資源管理器中,展開「SQL Server
實例」→「資料庫」→「MySchool」節點,單擊滑鼠右鍵,選擇「任務」→「導出數據」命令。出現導入和導出向導的歡迎界面,單擊「下一步」按鈕,出
現「選擇數據源」對話框,如圖
2
在「選擇數據源」對話框中設置如下選項:
數據源:SQL Native Client 10.0。
伺服器名稱:DC。
身份驗證:Windows身份驗證。
資料庫:MySchool。
單擊「下一步」按鈕,出現「選擇目標」對話框,設置如下選項(如圖所示):
目標:平面文件目標。
文件名:C:\student.txt。
格式:帶分隔符。
3
單擊「下一步」按鈕,出現「指定表復制或查詢」對話框,如圖所示。
4
在「指定表復制或查詢」對話框中選中「復制一個或多個表或視圖的數據」單選按鈕,單擊「下一步」按鈕,出現「配置平面文件目標」對話框,如圖所示。
5
設置源表或源視圖為MySchool.dbo.student,單擊「下一步」按鈕。
在「保存並執行包」對話框中選中「立即執行」復選框,如圖所示,然後單擊「下一步」按鈕。
6
在如圖所示的對話框中單擊「完成」按鈕。
7
如圖所示,當執行完後,單擊「關閉」按鈕。
8
在Windows資源管理器中打開C:\student.txt文件,驗證導出的結果。
END
將Excel數據導入到SQL Server步驟
1
打
開SQL Server Management Studio,在對象資源管理器中,展開「SQLServer
實例」→「資料庫」→「Benet」節點,單擊滑鼠右鍵,選擇「任務」→「導入數據」命令。出現歡迎界面,單擊「下一步」按鈕,出現「選擇數據源」對話
框。在「選擇數據源」對話框中設置如下選項
數據源:Microsoft Excel。
Excel文件路徑:C:\temp\Customer.xls。
版本:Microsoft Excel 97-2005。
(4)單擊「下一步」按鈕,出現「選擇目標」對話框,設置如下選項:
目標:SQL Native Client。
伺服器名稱:TESTSQL。
身份驗證:Windows身份驗證。
資料庫:Benet。
2
單擊「下一步」按鈕,出現「指定表復制或查詢」對話框。在「指定表復制或查詢」對話框中選中「復制一個或多個表或視圖的數據」單選按鈕,單擊「下一步」按鈕。出現「選擇源表和源視圖」對話框,設置如下選項,如圖4.9所示,然後單擊「下一步」按鈕。
源:Cumtomer。
目標:Benet.dbo.Customer。
3
在「保存並執行包」對話框中選中「立即執行」復選框,然後單擊「下一步」 按鈕。
在如圖所示的對話框中單擊「完成」按鈕。
當執行完後,單擊「關閉」按鈕。
http://jingyan..com/article/d169e186a6d024436611d826.html
㈣ 怎麼把sql server 資料庫某表的表結構導出成sql語句
可在圖形界面下操作。
步驟:
1、登錄sqlserver資料庫。
2、在左邊的樹列表中找到要導出的表,如圖中選擇的是dbo.test表。
㈤ 怎麼把sqlserver的數據導出.sql文件
具體看下面:
這是利用BCP來做的,
使用SQLServer自帶的bcp命令——
bcp 資料庫名.dbo.表名 out 文件名 –c –q –S」伺服器名」 –U」用戶名」 –P」密碼」
bcp 」select 語句」 queryout 文件名 –c –q –S」伺服器名」 –U」用戶名」 –P」密碼」
導出整張表:
EXEC master..xp_cmdshell 'bcp "inter_custom.dbo.out_ck1" out c:\Temp.xls -c -q -S"PETER" -U"sa" -P"[email protected]"'
根據Query語句導出:
EXEC master..xp_cmdshell 'bcp "select * from inter_custom.dbo.out_ck1" queryout c:\Temp.xls -c -q -S"PETER" -U"sa" -P"[email protected]"'
利用bcp要求資料庫的伺服器名,資料庫用戶名和密碼,這些必須傳到程序中。方法可以有很多中,大概的例子,可以看:
http://www.cnblogs.com/kevin/archive/2004/09/21/45351.html
利用openrowset可以寫存儲過程,可以看下面的例子
引自CSDN的鄒建大大
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_exporttb]
GO
/*--數據導出EXCEL
導出查詢中的數據到Excel,包含欄位名,文件為真正的Excel文件
如果文件不存在,將自動創建文件
如果表不存在,將自動創建表
基於通用性考慮,僅支持導出標准數據類型
--鄒建 2003.10(引用請保留此信息)--*/
/*--調用示例
p_exporttb @sqlstr='select * from 地區資料'
,@path='c:\',@fname='aa.xls',@sheetname='地區資料'
--*/
create proc p_exporttb
@sqlstr varchar(8000),--查詢語句,如果查詢語句中使用了order by ,請加上top 100 percent
@path nvarchar(1000),--文件存放目錄
@fname nvarchar(250),--文件名
@sheetname varchar(250)=''--要創建的工作表名,默認為文件名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)
--參數檢測
if isnull(@fname,'')=''set @fname='temp.xls'
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')
--檢查文件是否已經存在
if right(@path,1)<>'\' set @path=@path+'\'
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
--資料庫創建語句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'
+';CREATE_DB="'+@sql+'";DBQ='+@sql
else
set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'
+';DATABASE='+@sql+'"'
--連接資料庫
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@constr
if @err<>0 goto lberr
--創建表的SQL
declare @tbname sysname
set @tbname='##tmp_'+convert(varchar(38),newid())
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'
exec(@sql)
select @sql='',@fdlist=''
select @fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+'] '
+case
when b.name like '%char'
then case when a.length>255 then 'memo'
else 'text('+cast(a.length as varchar)+')' end
when b.name like '%int' or b.name='bit' then 'int'
when b.name like '%datetime' then 'datetime'
when b.name like '%money' then 'money'
when b.name like '%text' then 'memo'
else b.name end
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')
and a.id=(select id from tempdb..sysobjects where name=@tbname)
if @@rowcount=0 return
select @sql='create table ['+@sheetname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)
exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err<>0 goto lberr
exec @err=sp_oadestroy @obj
--導入數據
set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')
set @sql='drop table ['+@tbname+']'
exec(@sql)
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 錯誤號
,@src as 錯誤源,@desc as 錯誤描述
select @sql,@constr,@fdlist
go
從DataGrids中導出數據到Excel
DataSet結果導出到Excel
Export DataSets to Excel...
導出到Excel的四種方法
關於從net程序如何導出到excel微軟的msdn有專門的講述,在上面可以搜到。