當前位置:首頁 » 編程語言 » sqlserver數據導出sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver數據導出sql

發布時間: 2023-06-28 03:31:04

1. 如何將sqlserver表中的數據導出sql語句或生成insert into語句

右擊資料庫,在任務裡面選擇生成腳本,選擇特定資料庫對象腳本,選擇需要導出的表數據,然後把保存路徑改下,點擊下一步,就ok了

2. 在sql server2000中如何導出數據

1、打開資料庫選擇所需要操作的資料庫。

3. 如何將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,僅供參考。

4. sql server怎麼導出數據

數據導出步驟

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

5. 如何將sqlserver表中的數據導出sql語句或生成insert into語句

用SSMS的數據導出功能就可以了,選項裡面注意選擇Data only 或者schema and data

6. sqlserver 中怎麼導出資料庫中的數據

在涉及到SQL Server編程或是管理時一定會用到數據的導入與導出, 導入導出的方法有多種,結合我在做項目時的經歷做一下匯總:

1. SQL Server導入導出向導,這種方式是最方便的.

導入向導,微軟提供了多種數據源驅動,包括SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML等,基本上可以滿足系統開發的需求.

同樣導出向導也有同樣多的目的源驅動,可以把數據導入到不同的目的源.

對資料庫管理人員來說這種方式簡單容易操作,導入時SQL Server也會幫你建立相同結構的Table.

2. 用.NET的代碼實現(比如有一個txt或是excel的檔案,到讀取到DB中)

2.1 最為常見的就是循環讀取txt的內容,然後一條一條的塞入到Table中.這里不再贅述.

2.2 集合整體讀取,使用OLEDB驅動.

代碼如下:復制代碼
代碼
string strOLEDBConnect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1\;Extended Properties='text;HDR=Yes;FMT=Delimited'";
OleDbConnection conn = new OleDbConnection(strOLEDBConnect);
conn.Open();
SQLstmt = "select * from 1.txt";//讀取.txt中的數據
DataTable dt=new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(SQLstmt, conn);
da.Fill(dt);//在DataSet的指定范圍中添加或刷新行以匹配使用DataSet、DataTable 和IDataReader 名稱的數據源中的行。
if(dt.Rows.Count>0)
foreach(DataRow dr in dt.Rows)
{
SQLstmt = "insert into MyTable values('" + dr..."
復制代碼
3.BCP,可以用作大容量的數據導入導出,也可以配合來使用.

語法:

復制代碼
代碼
bcp {[[database_name.][schema].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-mmax_errors] [-fformat_file] [-x] [-eerr_file]
[-Ffirst_row] [-Llast_row] [-bbatch_size]
[-ddatabase_name] [-n] [-c] [-N] [-w] [-V (70 | 80 | 90 )]
[-q] [-C { ACP | OEM | RAW | code_page } ] [-tfield_term]
[-rrow_term] [-iinput_file] [-ooutput_file] [-apacket_size]
[-S [server_name[\instance_name]]] [-Ulogin_id] [-Ppassword]
[-T] [-v] [-R] [-k] [-E] [-h"hint [,...n]"]
復制代碼


請注意數據導入導出的方向參數:in,out,queryout

如:如:

4.BULK INSERT. T-SQL的命令,允許直接導入數據

語法:復制代碼
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE =batch_size ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ]
[ [ , ] FIELDTERMINATOR = 'field_terminator' ]
[ [ , ] FIRSTROW = first_row ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE ='format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH =kilobytes_per_batch ]
[ [ , ] LASTROW =last_row ]
[ [ , ] MAXERRORS =max_errors ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH =rows_per_batch ]
[ [ , ] ROWTERMINATOR ='row_terminator' ]
[ [ , ] TABLOCK ]
[ [ , ] ERRORFILE ='file_name' ]
)]
復制代碼
重要參數:FIELDTERMINATOR,欄位分隔符

FIRSTROW:第一個數據行

ROWTERMINATOR:行終結符

如:

BULK INSERT dbo.ImportTest
FROM 'C:\ImportData.txt'
WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )5. OPENROWSET也是T-SQL的命令,包含有DB連接的信息和其它導入方法不同的是,OPENROWSET可以作為一個目標表參與INSERT,UPDATE,DELETE操作.

語法:復制代碼
OPENROWSET
( { 'provider_name', { 'datasource';'user_id';'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file',
{ FORMATFILE ='format_file_path' [ <bulk_options> ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )<bulk_options> ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE ='file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH =rows_per_batch ]
復制代碼


如:

INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]') WHERE A1 IS NOT NULL

6.OPENDATASOURCE

語法:

OPENDATASOURCE ( provider_name,init_string )
如:

INSERT INTO dbo.ImportTest
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]7.OPENQUERY.是在linked server的基礎上執行的查詢.所以執行之前必須先建立好link server.OPENQUERY的結果集可以作為一個table參與DML的操作.語法:

OPENQUERY (linked_server ,'query')
如:

EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
'C:\ImportData.xls',
NULL,
'Excel 8.0'
GOINSERT INTO dbo.ImportTest
SELECT *
FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')

7. 怎麼把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有專門的講述,在上面可以搜到。