當前位置:首頁 » 存儲配置 » sqlserver存儲過程導出

sqlserver存儲過程導出

發布時間: 2022-03-16 00:07:21

sql server存儲過程如何把查詢全部結果並輸出

sql server存儲過程 輸出結果集 還是比較簡單的.
直接在 存儲過程裡面執行 SQL 語句就可以了。
例如:

1> CREATE PROCEDURE testProc
2> AS
3> BEGIN
4> SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
5> SELECT 'Hello 2' AS A, 'World 2' AS B;
6> END
7>
8> go

1> execute testProc
2> go
A B
------- -------
Hello 1 World 1
Hello 2 World 2

(2 行受影響)

⑵ 如何備份SQL存儲過程批量導出資料庫存儲過程

打開SQL Server Management Studio查詢分析器,找到需要批量導出SQL存儲過程資料庫。右鍵菜單-任務-生成腳本

進入的生成SQL Server腳本向導。點擊下一步。

選中要導出所有SQL存儲過程的資料庫。繼續下一步。

腳本選項,不用做修改,默認即可。

在選擇對象類型中,選擇存儲過程。

這樣可以看到這個資料庫中所有的SQL存儲過程,可以批量選擇SQL存儲過程,也可以全選所有的SQL存儲過程進行導出。

在腳本模式中,腳本保存到文件,選擇需要導出保存到電腦上的文件夾路徑。單個文件即所有SQL存儲過程都放在一個SQL文件中,不是每個SQL存儲過程獨立一個SQL文件。所以可以選擇每個對象一個文件。

設置向導完成,等待導出完成即可。

⑶ 如何導出SQL的視圖和存儲過程

打開SQL按F7,調出「對象資源管理器詳細信息」,在左側選中「存儲過程「或」StoredProceres「目錄,到右側窗口,全選所有的要導入的sp,在選中的sp上滑鼠右鍵。「生成存儲過程腳本為」->「Drop和Create到」->「File」,這樣就可以導出所了。


⑷ 如何將一個表從sql sever中導入導出

2005 和 2000 導入 導出 案例

1) SQL Server 2000數據導入到SQL Server 2005中

好的是微軟的產品一般都對之前的產品比較兼容,在SQL Server 2000中,只需要把其數據進行備份,在對應的資料庫中點擊右鍵,然後選擇「所有任務」下的「備份資料庫」,就彈出一個對話框,然後點擊「添加」按鈕,輸入對應的資料庫備份名稱,就可以備份數據了。然後在SQL Server 2005中,在資料庫中點擊右鍵,點擊「還原資料庫」,在彈出的對話框中,「常規」的選項卡中,「目標資料庫」後面中,輸入資料庫的名字,在指定用於還原的備份集的源和位置下面選擇「源設備」,在後面對應的文件夾按鈕中點擊選擇我們在SQL Server 2000中備份的資料庫,然後選中前面的選框,需要在「選項」選項卡中修改對應的路徑,這樣就可以在SQL Server 2005中恢復對應的數據了。

在這種數據的導入過程,其實並不考慮SQL Server版本的問題了,它和各版本之間數據的互相導入沒有什麼區別,就是界面的顯示不同而已。下面再看第二種方式。

2) SQL Server 2005數據導入到SQL Server 2000中

此方法就不能按照上面的導入來實現了,否則會報版本不同的錯誤顯示的。但如何來實現呢,我們在SQL Server 2005中,在對應的資料庫中點擊右鍵然後選擇「任務」菜單下的「生成腳本」,連續點擊兩個「下一步」,然後在彈出的對話框中,在「選項」下面的框中找到「為伺服器版本編寫腳本」,把後面的SQL Server2005修改成SQL Server 2000,然後再點擊下一步,把表選中,如有存儲過程,也需要把存儲過程選中,然後點擊下一步,全選存儲過程或者表,然後點擊「下一步」,再點擊「完成」,然後會在新建的查詢窗口中生成了所有的SQL語句,我們把這些語句進行復制,然後在SQL Server 2000中對應資料庫的查詢分析器中進行執行,就把對應的表結構及存儲過程生成了。

這時我們再來用SQL Server 2000中在對應資料庫中點擊右鍵,在「所有任務」對應的「導入數據」,輸入SQL Server 2005中伺服器的名稱或者IP地址,然後再輸入SQL Server 2000中伺服器對應的名稱或者IP地址,然後默認的選擇進入「下一步」,全選所有的表,然後點擊兩個「下一步「,數據就可以導進來了。

⑸ Oracle怎麼導出存儲過程

1、首先登錄到資料庫中,點擊右上角有個工具欄,點擊工具欄上的tools。

⑹ 如何把pl/sql中的存儲過程導出

1. 打開PL/SQL Developer如果 在機器上安裝了PL/SQL Developer的話,打開PL/SQL Developer界面輸入 用戶名,密碼和host名字,這個跟在程序中web.config中配置的完全相同,點擊確定 找到 需要調試的存儲過程所在的包(Package bodies),如PACK_ACTIVITY,點擊右鍵,在彈出菜單中選擇[查看],得到包中的所有存儲過程和他們的代碼. 2. 添加debug信息為了 能夠單步跟蹤存儲過程,需要為其所在的包添加debug信息,右鍵點擊需要調試的包,在彈出菜單中選中[添加調試信息].這樣 就為包體添加了調試信息。 3. 調 試存儲過程現在 所有的准備工作都做好了,可以調試跟蹤存儲過程了。選擇 需要調試的存儲過程,點擊右鍵,在彈出菜單中 選擇[測試],進去測試窗口.測試窗口中有為了測試該存儲過程自動所產生的代碼,當然你也可以自己另外加入和修改代碼,對於我們目前只是為了調試存儲過程, 自動生成的代碼已經足夠了。接著按照如下的步驟進行調試。(1)添加存儲過程所需要的參數,我們項目中的大多數存儲過程都是需要參數 的,參數可以在測試窗口右下部分輸入。如:GetPanNO_New需要一個輸入參數v_employeeid,我們輸入180,輸出參數是mycursor,是查看結果的,不需要輸入任何值。 (2)開始調試,點擊[調試]菜單->[開始](或者按F9),就進去調試模式了,程序開始停在begin這一行. (3)以後的調試過程跟我們熟悉的的調試過程就一樣了:運行(Ctrl+R)單步 進入(Ctrl+N)單步 跳過(Ctrl+O)單步 退出(Ctrl+T)或者 點擊debug工具條上的按扭:當按Ctrl+N進去存儲過程的源代碼中後 在這 個窗口中可以查看過程中的變數值和堆棧。 (4)調試運行完了後,可以查看結果如下(點擊mycursor變數旁邊的按鈕). 4. Tip 令人 比較郁悶的是我們項目中很多的存儲過程都是一個SELECT語句,不管這個SELECT語句多麼復雜(SELECT語句中有嵌套的子SELECT語句),它也只能作為一行代碼,單步跟蹤就沒有什麼意義了。

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

⑻ sql server 怎麼把數據導出來

目前主要提到了三種辦法,一種在程序中調用DTS,二種使用SQL SERVER帶的BCP功能,三種使用openrowset。
具體看下面:
這是利用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有專門的講述,在上面可以搜到。

⑼ sql server存儲過程如何輸出結果集

sql server存儲過程 輸出結果集 還是比較簡單的.
直接在 存儲過程裡面執行 SQL 語句就可以了。
例如:

-- 測試返回結果集的存儲過程
CREATE PROCEDURE testProc
AS
BEGIN
SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
SELECT 'Hello 2' AS A, 'World 2' AS B;
END

go

剩下的, 就是你用 別的開發語言, 例如 C# 什麼的 , 調用這個存儲過程, 獲取結果集了。

熱點內容
百度雲zip怎麼解壓 發布:2025-02-01 16:31:59 瀏覽:562
pmc密碼是什麼意思 發布:2025-02-01 16:28:49 瀏覽:783
蘋果手錶和安卓手錶哪個好用 發布:2025-02-01 16:28:07 瀏覽:582
上海電信上傳 發布:2025-02-01 16:22:10 瀏覽:982
有什麼好的雙u主板配置 發布:2025-02-01 16:18:17 瀏覽:176
編程漩渦 發布:2025-02-01 16:01:51 瀏覽:328
司機會所訪問 發布:2025-02-01 15:54:11 瀏覽:780
家用電腦改成伺服器並讓外網訪問 發布:2025-02-01 15:30:23 瀏覽:354
javac工資 發布:2025-02-01 15:24:28 瀏覽:23
如何刪除伺服器登錄賬號 發布:2025-02-01 15:21:05 瀏覽:498