怎么讲存储过程的结果集放到一个table里
如何讲存储过程的结果集放到一个table里,
if (exists (select * from sys.objects where name = 'PR_P018'))
drop proc PR_P018
go
create procedure PR_P018
as
select * from Ttt
go
exec PR_P018
我写的一个简单的查询存储过程、如何将这个表的内容放到一个TABLE里?我在调用这个过程的时候 我可以接收到结果集,并按照字段在页面上显示出来
------解决思路----------------------
在程序里执行存储过程,可以获取得到
如.NET,可以直接用dbo的SqlDataAdapter把结果File到DataSet
------解决思路----------------------
一般采取的方式是 新建一个临时表 然后 INSERT INTO #TB EXEC PR_P018
------解决思路----------------------
可以采用 2# 的临时表的方式,如果数据量不大的话,使用 表变量也是个不错的选择。
------解决思路----------------------
查询到的结果本身就是一个table集合,然后你如果是c#,得到的就是一个dataset
------解决思路----------------------
数据库这边不需要EXEC
以下SQL脚本在数据库执行下
if (exists (select * from sys.objects where name = 'PR_P018'))
drop proc PR_P018
go
create procedure PR_P018
as
select * from Ttt
go
exec PR_P018
我写的一个简单的查询存储过程、如何将这个表的内容放到一个TABLE里?我在调用这个过程的时候 我可以接收到结果集,并按照字段在页面上显示出来
------解决思路----------------------
在程序里执行存储过程,可以获取得到
如.NET,可以直接用dbo的SqlDataAdapter把结果File到DataSet
------解决思路----------------------
一般采取的方式是 新建一个临时表 然后 INSERT INTO #TB EXEC PR_P018
------解决思路----------------------
可以采用 2# 的临时表的方式,如果数据量不大的话,使用 表变量也是个不错的选择。
------解决思路----------------------
查询到的结果本身就是一个table集合,然后你如果是c#,得到的就是一个dataset
------解决思路----------------------
数据库这边不需要EXEC
以下SQL脚本在数据库执行下
if (exists (select * from sys.objects where name = 'PR_P018'))C#上代码类似这样写就可以了
drop proc PR_P018
go
create procedure PR_P018
as
select * from Ttt
go
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
// 设置sql连接
cmd.Connection = "你的SQL连接";
// 如果执行语句
cmd.CommandText = "PR_P018";
// 指定执行语句为存储过程
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dp.Fill(ds);
// 以下是显示效果
GridView1.DataSource = ds;
GridView1.DataBind();