當前位置:首頁 » 編程語言 » sqlserver導入導出

sqlserver導入導出

發布時間: 2022-07-07 17:48:57

sqlserver 用命令如何導入導出表結構和表數據

平常從SQLSERVER中進行導入導出時,我們利用SQLSERVER中自帶的DTS轉換工具即可,很方便。但有些特殊的用法需要用語句進行導入導出,工作中碰到這種情況,查了些資料,下面詳細介紹:
一、從excel表導入到SQLSERVER use test go select * into test_table from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\11.xls;','select * from [結果$]') --1.通過Sql Server查詢分析器查詢D:\abc.xls 裡面表 sheet1 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] --2.如果表a存在,並且表a的結構與上一步的查詢的結構一樣 可以使用 insert into a SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] --3.如果表a不存在,使用into a SELECT * into a FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 說明:test_table為SQLSERVER資料庫中的表,11.xls是EXCEL表,[結果$]是EXCEL表中的工作表,注意寫法是工作表名加上$符號。 2從SQLSERVER資料庫中導出到EXCEL(一般用語句導庫是在應用程序中,利用各種語言實現,如果不做開發項目,用DTS就很好了,在 SQLSERVER查詢器中利用單條SQL語句實現導入導出不方便,類型轉換是個問題,不好解決) 第一種,無法導入欄位名:(excel表不存在,新建) EXEC master..xp_cmdshell 'bcp zhou.dbo.資料庫表名 out "c:\test.xls" /c /S "伺服器名" /U "用戶名" -P "密碼" ' 第二種,excel文件已存在,要手工把表欄位名填到excel文件中去,再執行下面: insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 8.0;HDR=YES;DATABASE=c:\文件名.xls',sheet1$) select * from 表名 第三種,想實現全自動轉欄位名和記錄,一條語句實現不了,要用到過程,當然如果要做一個自動轉換程序,用VB或者VC語言也可實現。 把下面的過程全拷入SQLSERVER查詢分析器,執行,生成一個過程,過程名為:p_exporttb,然後按應用例子執行過程就OK了,自 動導表 /*******************************/ 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 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 /*******************應用例子***************************/ p_exporttb @sqlstr='select * from 貸款大戶表' ,@path='c:\',@fname='aa.xls',@sheetname='貸款大戶表'

㈡ 如何把SQLServer表數據導出為Excel文件

1、打開軟體,在資料庫中有一張student表,現在要把這張表中的數據導出成excel文件。

㈢ 如何利用SQL查詢語句從SQLSERVER資料庫中導入導出EXCEL表格

平常從SQLSERVER中進行導入導出時,我們利用SQLSERVER中自帶的DTS轉換工具即可,很方便。但有些特殊的用法需要用語句進行導入導出,工作中碰到這種情況,查了些資料,下面詳細介紹:
一、從excel表導入到SQLSERVER
use test
Go
select * into test_table from
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\11.xls;','select * from [結果$]')

--1.通過Sql Server查詢分析器查詢D:\abc.xls 裡面表 sheet1
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

--2.如果表a存在,並且表a的結構與上一步的查詢的結構一樣

㈣ SQL如何導入數據和導出數據

導入:如果是整個資料庫的話,可以選中SQL
Server的資料庫右鍵附加。如果是導入資料庫中的表數據的話可以選中資料庫,右鍵—任務—導入數據,按提示操作即可。
導出:選中資料庫,右鍵—任務—導出數據,按提示操作即可。
在SQL
Server20008版中可以導出資料庫中某個表的數據為腳本文件。右鍵選中的資料庫名-任務-生成腳本—編寫數據腳本(設置為True)-選中要導出的數據表-按提示操作。

㈤ sqlserver 怎麼導出資料庫的表

打開sql server 2008 後,選擇你要導出的資料庫
在資料庫上右擊,選擇【任務】→【生成腳本】
進入簡介頁面,直接點擊【下一步】就可以了
選擇對象頁面,可以選擇導出整個資料庫的腳本,或者其中的部分表,很靈活
進入設置腳本選項,首先把導出的路徑選擇好
防止一會兒忘記設置路徑,找不到導去哪裡了
然後點擊【高級】
在高級選項頁面,在左側找到【要編寫腳本的數據類型】,然後在右側的下拉框中選擇【架構和數據】
這一步操作千萬不要忘記了!除非你不想要數據,只要表的結構。
之後回到編寫選項的頁面,點擊【下一步】
要摘要頁面,可以做個簡單的檢查,看前面的選擇是不是您想要的
檢查無誤,點擊【下一步】,開始執行
好了,導出成功啦

㈥ sql server 2000 資料庫如何導入導出

在開始菜單的運行框中輸入dtswiz,然後選擇源數據源和目標數據源,例如:如果是從SQLServer中導出到Excel中,那麼那麼需要在其中輸入SQL語句或者選擇指定資料庫中的一個或多個表,然後再指定Excel的路徑和文件名,如果是從Excel導入到SQLServer中,就簡單一些,選擇好具體的Excel文檔後,再選擇其中的某一個Sheet(工作表),然後再設置SQLServer的指定資料庫即可,還可以從SQLServer中的一個資料庫導入到SQLServer的另一個資料庫中,方法類似。

㈦ SQL資料庫的導入與導出

一、導出導入SQL Server里某個資料庫 1.在SQL Server企業管理器里選中要轉移的資料庫,按滑鼠右鍵,選所有任務->備份資料庫。 2.備份 選資料庫-完全, 目的 備份到 按添加按鈕 文件名 在SQL Server伺服器硬碟下輸入一個自定義的備份資料庫文件名(後綴一般是bak) 重寫 選重寫現有媒體 最後按確定按鈕。 如果生成的備份資料庫文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。 3.通過FTP或者remote desktop或者pcanywhere等方法 把第二步生成的備份資料庫文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。 4.目的SQL Server資料庫如果還沒有此資料庫,先創建一個新的資料庫; 然後選中這個新創建的資料庫,按滑鼠右鍵,選所有任務->還原資料庫 還原->從設備->選擇設備->磁碟->添加(找到要導入的備份資料庫文件名)->確定 還原備份集->資料庫-完全 最後按確定按鈕。完全的資料庫導入成功了。 (如果在已經存在的SQL Server資料庫上還原資料庫可能遇到有還有其它人正在使用它而恢復操做失敗, 可以去看 ->管理->當前活動->鎖/對象->找到資料庫下鎖的進程號->到查詢分析器里用kill 進程號殺掉這些鎖, 然後再做還原) 注意:如果在原有的目的SQL Server資料庫上從備份文件(*.bak)還原資料庫 會把已經存在的表、存儲過程等資料庫對象全部替換成最近這次導入的備份資料庫里的內容。 如果一定要還原備份文件(*.bak)里部分數據,需要另外建一個新資料庫, 其邏輯名稱和數量同備份文件(*.bak)里資料庫的邏輯名稱和數量一致; 新資料庫的物理文件名稱取得一定要和備份文件(*.bak)里資料庫的物理文件不一樣才行。
二、導出導入SQL Server里某個表
1.沒有防火牆,同一個區域網里或不在同一個區域網里,但通過Internet可以互相訪問 在SQL Server企業管理器里選中目的資料庫 ,按滑鼠右鍵,選所有任務->導入數據-> 彈出數據轉換服務導入/導出向導窗口->下一步-> 選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)-> 伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)-> 選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)-> 資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步-> 選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)-> 伺服器(默認為上一步里選中的導出伺服器,也可以選其它區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)-> 目的資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步-> 制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步-> 選擇源表和視圖->在要導入的表和視圖前面選中源->目的出現同樣的表名(可以手工修改成別的表名)-> 轉換->列映射和轉換裡面可以修改源表和目的表之間欄位的對應關系,修改目的表欄位的類型和長度等, 並可以選擇創建目的表,在目的表中增加行,除去並重新創建目的表,啟用標志插入等選項->確定->下一步-> 保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出導入數據,選調度DTS包以便以後執行)-> 保存(可以不選)->[ 保存DTS包(如果以後還要轉移這批相同的數據,可以把本次導出導入的內容和步驟保存起來, 存到SQL Server即可,保存的時候要輸入DTS的包名及詳細描述)->下一步-> ]->完成 正在執行包->圖形界面顯示創建表及插入記錄的步驟和狀態->完成
2.經過防火牆,不在同一個區域網里 ①、導出表裡的數據到文本文件: 在SQL Server企業管理器里選中目的資料庫,按滑鼠右鍵,選所有任務-> 導入數據->彈出數據轉換服務導入/導出向導窗口->下一步-> 選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)-> 伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器)-> 選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)-> 資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步-> 選擇目的->目的(文本文件)-> 文件名(在自己的電腦硬碟中生成一個自定義的文本文件) ->下一步-> 制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步-> 選擇目的文件格式->源(選擇要導出的表)->用默認的帶分隔符->選第一行包含有列名稱選項->下一步-> 保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出到文本文件,選調度DTS包以便以後執行)-> 保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成 正在執行包->圖形界面顯示表到文本文件的步驟和狀態->完成 如果生成的文本文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。 ②、通過FTP或者remote desktop或者pcanywhere等方法把 第①步生成的文本文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。 ③、把文本文件導入目的SQL Server資料庫 直接把文本文件導入目的SQL Server資料庫里跟文本文件同名的新表名時,默認的會把所有欄位類型都變成字元串。 所以我們要這樣做: 在源SQL Server資料庫上先生成創建表的sql語句 在SQL Server查詢分析器里->選中源資料庫里表名->按右鍵->在新窗口中編寫對象腳本->創建-> 復制下新窗口內創建表名的sql語句 到目標SQL Server資料庫上查詢分析器里執行創建表名的sql語句,生成空表結構。 (如果已經存在這樣的表名,修改建表的sql語句,在表名後面加上導入時間的年月信息,例如table_0113) 調用導入/導出工具->彈出數據轉換服務導入/導出向導窗口->下一步-> 選數據源-> 數據源(文本文件)-> 文件名(已傳到目的SQL Server資料庫下要導入的文本文件,後綴可以不是*.txt, 但是常規文本編輯器能打開的文件,文件類型選全部)->下一步-> 選擇文件格式->用默認的帶分隔符->選第一行包含有列名稱選項->下一步-> 制定列分割符->逗號->下一步-> 選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)-> 伺服器(可選擇目標區域網內能訪問到的所有SQL Server伺服器)-> 選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)-> 資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步-> 選擇源表和視圖->修改目的表名為剛才創建的表名->轉換(在目的表中追加行) ->下一步-> 保存、調度和復制包-> 時間->立即運行(如果要實現隔一段時間自動把文本文件導入,選調度DTS包以便以後執行)-> 保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成 正在執行包->圖形界面顯示文本文件到表的步驟和狀態->完成 如果要更改導入時間的年月信息的表名,例如table_0113到原來的表名, 在企業管理器里把原來的表名改成table_old_0113,table_0113改名成table。 這會對應用程序里頻繁訪問的表照成一定的中斷。
注意:源表上的建的索引和主鍵約束不能用上面介紹的1和2方法轉移過來,還需要手工來建索引和主鍵。 標志種子和not null的約束可以繼承過來。 導入視圖時會把源視圖里所有的真實數據導入成一個新表,而不是視圖。

㈧ 如何把SQLServer表數據導出CSV文件

1、先到界面創建一個.txt文件,再把後綴名改為csv。則變成了一個csv文件。

㈨ SQL資料庫怎麼導入導出數據

sqlserver之間的數據互導是可以實現的,sqlserver本身也自帶這個功能,數據源就選擇默認的
用於sqlserver的microsoft
oledb數據源就可以啊

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:239
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726