这样的存储过程如何实现

kinmax 2004-07-09 03:23:02
我想在存储过程中用SELECT语句查询出来的信息插到另一个表(TABLE)中,并且TABLE的字段有很多,而且记录要连续插多次,即已存在记录不能覆盖.
不知道存储过程可用FOR循环吗?我想用循环的方式插到TABLE里去(如没有记录,则插入,有则追加)

例:
查询信息:
workname num greeLevel
办公室 5 大学
财务科 10 大学
单证部 3 大学
实施部 33 大学
TABLE(workname,greelevel,zhongzhuan,gaoji,chuji)
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhh_88 2004-07-09
  • 打赏
  • 举报
回复
不可以,但你可以这样

declare @fieldname varchar(10)
set @fieldname='fname'
exec('select '+fieldname+' from table1')
kinmax 2004-07-09
  • 打赏
  • 举报
回复
还有,存储过程里的列名可以用变量吗?如果可以,怎么写啊,谢谢!
xhh_88 2004-07-09
  • 打赏
  • 举报
回复
exec 过程名 参数1[,参数2]
kinmax 2004-07-09
  • 打赏
  • 举报
回复
再问一下,在存储过程里怎么调用另一个存储过程啊,刚学存储过程,不好意思,问题都比较菜哈. :)
zgq19801123 2004-07-09
  • 打赏
  • 举报
回复
up
WangZWang 2004-07-09
  • 打赏
  • 举报
回复
可在While中进行判断后再确定添加!
jun_01 2004-07-09
  • 打赏
  • 举报
回复
用insert into 不行吗?
xhh_88 2004-07-09
  • 打赏
  • 举报
回复
不要循环,你分两次更新
已经有的用update
新的用insert
WangZWang 2004-07-09
  • 打赏
  • 举报
回复
Create procedure up_Inserttab
as
Declare @workname varchar(20),
@num int,
@GreeLevel varchar(20)


Declare curgetDate cursor
For
Select workname,num,greeLevel
From 数据表
wherer ....

Open curgetDate
Fetch next From curgetDate Into @workname,@num,@greeLevel
While @@Fetch_Status=0
Begin
Insert Into table(workname,greelevel)
values(@workname,@greeLevel)
Fetch next From curgetDate Into @workname,@num,@greeLevel
End
Close curgetDate
DealLocate curgetDate
Return
kinmax 2004-07-09
  • 打赏
  • 举报
回复
没人知道吗?自己顶一下哈!

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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