通過(guò)調(diào)用存儲(chǔ)過(guò)程不但能返回值,還能返回一張表,下面的代碼中實(shí)現(xiàn)了創(chuàng)建一個(gè)臨時(shí)表,并返回這個(gè)表(支持多個(gè))的用法。希望對(duì)大家有幫助,
Examda提示: 這里還涉及到一個(gè)臨時(shí)表的創(chuàng)建,什么是sql server真正的臨時(shí)表,并發(fā)不沖突的臨時(shí)表,要讓系統(tǒng)建立在tempdb中才是,sql server會(huì)自動(dòng)管理這些臨時(shí)表
c#代碼如下
DataSet ds = new DataSet();
System.Data.OleDb.OleDbCommand cmd = m_TdlyDataAccess.DBConnection.CreateCommand();
cmd.CommandText = "prcTest";
cmd.CommandType = CommandType.StoredProcedure;
System.Data.OleDb.OleDbDataAdapter dap = new System.Data.OleDb.OleDbDataAdapter(cmd);
dap.Fill(ds);
存儲(chǔ)過(guò)程如下
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[prcTest]
AS
begin
CREATE TABLE #t(x INT PRIMARY KEY,y int default 0,z int default 0)
INSERT INTO #t VALUES (99,0,0)
INSERT INTO #t VALUES (239,0,0)
INSERT INTO #t VALUES (939,0,0)
select * from #t
drop table #t
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Examda提示: 這里還涉及到一個(gè)臨時(shí)表的創(chuàng)建,什么是sql server真正的臨時(shí)表,并發(fā)不沖突的臨時(shí)表,要讓系統(tǒng)建立在tempdb中才是,sql server會(huì)自動(dòng)管理這些臨時(shí)表
c#代碼如下
DataSet ds = new DataSet();
System.Data.OleDb.OleDbCommand cmd = m_TdlyDataAccess.DBConnection.CreateCommand();
cmd.CommandText = "prcTest";
cmd.CommandType = CommandType.StoredProcedure;
System.Data.OleDb.OleDbDataAdapter dap = new System.Data.OleDb.OleDbDataAdapter(cmd);
dap.Fill(ds);
存儲(chǔ)過(guò)程如下
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[prcTest]
AS
begin
CREATE TABLE #t(x INT PRIMARY KEY,y int default 0,z int default 0)
INSERT INTO #t VALUES (99,0,0)
INSERT INTO #t VALUES (239,0,0)
INSERT INTO #t VALUES (939,0,0)
select * from #t
drop table #t
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO