想存储过程中传递表变量

elysium1984 2009-04-13 09:48:20
搜索到一个05年的帖子,内容如下:
我得到许多数据,保存在.NET环境下的DataTable变量下,我想直接把该变量传递给存储过程,请问有办法实现吗?多谢

例如:
create Proc [dbo].[InsertEverydayResult]
(
@EverydayTable table
)

as

insert into EverydayTable
select * from @EverydayTable edt where edt.[date] not in (select [date] from EverydayTable)
go

总是出现提示:变量@EverydayTable没有定义





但是大家的回复没有结果,现在小弟遇到了相同的问题,请教各位大侠有没有好的方法解决!
...全文
184 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
claro 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liangCK 的回复:]
引用 15 楼 elysium1984 的回复:
.net用的是2008
SQL server数据库用的是2005


取个巧..

存储过程的参数类型用XML,
然后在程序里,将DataTable的数据,转成一个XML数据.然后再传到存储过程中.
再存储过程里,再将XML数据生成行集..
[/Quote]
firefly_2008 2009-04-13
  • 打赏
  • 举报
回复
換個方法 利用function來生成表變量,然后在store里直接調用了算
elysium1984 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liangCK 的回复:]
引用 15 楼 elysium1984 的回复:
.net用的是2008
SQL server数据库用的是2005


取个巧..

存储过程的参数类型用XML,
然后在程序里,将DataTable的数据,转成一个XML数据.然后再传到存储过程中.
再存储过程里,再将XML数据生成行集..
[/Quote]

谢谢小梁,先去试验一下。
elysium1984 2009-04-13
  • 打赏
  • 举报
回复
有没有变通的解决方法吗?
liangCK 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 elysium1984 的回复:]
.net用的是2008
SQL server数据库用的是2005
[/Quote]

取个巧..

存储过程的参数类型用XML,
然后在程序里,将DataTable的数据,转成一个XML数据.然后再传到存储过程中.
再存储过程里,再将XML数据生成行集..
elysium1984 2009-04-13
  • 打赏
  • 举报
回复
.net用的是2008
SQL server数据库用的是2005
you_tube 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangCK 的回复:]
SQL SERVER 2008才支持.
[/Quote]
向小Liang学习
elysium1984 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 you_tube 的回复:]
引用 8 楼 elysium1984 的回复:
但是数据保存在.NET环境下的DataTable变量下,数据库中并没有这个表啊,直接传表名可以吗?

@EverydayTable
是要查询数据的表名,数据库没有这个表,那这数据怎么出来?
[/Quote]


数据全在在.NET 的DataTable 变量里呢,要转存到数据库表中。
you_tube 2009-04-13
  • 打赏
  • 举报
回复
2008中,这样才可以
 create  Proc  [dbo].[InsertEverydayResult] 
(
@EverydayTable EverydayTable READONLY
)
as
insert into EverydayTable
select * from @EverydayTable edt where edt.[date] not in (select [date] from verydayTable)
go
ChinaJiaBing 2009-04-13
  • 打赏
  • 举报
回复

create Proc [dbo].[InsertEverydayResult]
(
@EverydayTable nvarchar(50)
)

as
begin

exec('insert into EverydayTable select * from ' + @EverydayTable + 'as edt where edt.[date] not in (select [date] from EverydayTable)')

end



ChinaJiaBing 2009-04-13
  • 打赏
  • 举报
回复

create Proc [dbo].[InsertEverydayResult]
(
@EverydayTable nvarchar(50)
)

as
begin

exec('insert into EverydayTable select * from ' + @EverydayTable + 'as edt where edt.[date] not in (select [date] from EverydayTable)'

end



you_tube 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 elysium1984 的回复:]
但是数据保存在.NET环境下的DataTable变量下,数据库中并没有这个表啊,直接传表名可以吗?
[/Quote]
@EverydayTable
是要查询数据的表名,数据库没有这个表,那这数据怎么出来?
elysium1984 2009-04-13
  • 打赏
  • 举报
回复
但是数据保存在.NET环境下的DataTable变量下,数据库中并没有这个表啊,直接传表名可以吗?
  • 打赏
  • 举报
回复
create  Proc  [dbo].[InsertEverydayResult]  
(
@EverydayTable table
)

as

exec('insert into EverydayTable
select * from '+ @EverydayTable +' edt where edt.[date] not in (select [date] from EverydayTable) ')
go
htl258_Tony 2009-04-13
  • 打赏
  • 举报
回复
  create  Proc  [dbo].[InsertEverydayResult]  
(
@EverydayTable varchar(20)
)

as

exec('insert into EverydayTable
select * from '+@EverydayTable +' edt where edt.[date] not in (select [date] from EverydayTable) ')
go
这样?
jiyan1221 2009-04-13
  • 打赏
  • 举报
回复
这个不知道,帮顶+关注~~
you_tube 2009-04-13
  • 打赏
  • 举报
回复
传表名就行了
  create  Proc  [dbo].[InsertEverydayResult] 
@EverydayTable varchar(32)
as
insert into EverydayTable
select * from @EverydayTable edt where edt.[date] not in (select [date] from EverydayTable)
go
百年树人 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL code create Proc [dbo].[InsertEverydayResult]
(
@EverydayTable table
)
as
exec ('insert into EverydayTable
select * from '+@EverydayTable+' edt where edt.[date] not in (select [date] from EverydayTable)')
go
[/Quote]
看成是变量了
百年树人 2009-04-13
  • 打赏
  • 举报
回复
 create  Proc  [dbo].[InsertEverydayResult]  
(
@EverydayTable table
)

as

exec ('insert into EverydayTable
select * from '+@EverydayTable+' edt where edt.[date] not in (select [date] from EverydayTable)')
go
liangCK 2009-04-13
  • 打赏
  • 举报
回复
SQL SERVER 2008才支持.

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧