问一下存储过程过程语句

天使会疯狂 2013-04-12 03:22:42
列如我有个表:字段 姓名,性别
然后我想通过存储过程插入100条数据
姓名 性别
张三 男
李四 女

以前写习惯了,N多insert直接执行,现在换成存储语句 。我该如何操作!谢谢,在线等
...全文
313 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
salangane0512 2013-04-14
  • 打赏
  • 举报
回复
建一个存储过程,然后把你的Insert语句写进去
lhd24 2013-04-13
  • 打赏
  • 举报
回复
楼主最好还是去稍微熟悉一下数据库存储过程比较好,也不是很难
guojianxin2009 2013-04-13
  • 打赏
  • 举报
回复
如果是oracle,用数组参数就解决了
充满荆棘的路 2013-04-12
  • 打赏
  • 举报
回复
楼主,给你个规范的查询存储过程 (通用查询) IF OBJECT_ID('存储过程名')>0 DROP PROC 存储过程名 GO CREATE PROC 存储过程名 @bname NVARCHAR(50), --要查询的表名 @lname NVARCHAR(50), --要查询的列名 @where NVARCHAR(500) --条件(可以为空) AS DECLARE @sql NVARCHAR(1000) --sql语句 SET @sql='SELECT '+@lname+' FROM '+@bname+' WHERE 1=1 '+@where EXEC (@sql) GO
  • 打赏
  • 举报
回复
my903687142 2013-04-12
  • 打赏
  • 举报
回复
两个还没写完,自己往下写
aotui945 2013-04-12
  • 打赏
  • 举报
回复
create procedure [存储过程名称] ( @id int [output] --参数 ) as select * from [表名] --sql语句集 go
my903687142 2013-04-12
  • 打赏
  • 举报
回复
这两个函数需要自己编写: CREATE function Get_StrArrayLength ( @str varchar(1024), --要分割的字符串 @split varchar(10) --分隔符号 ) returns int CREATE function Get_StrArrayStrOfIndex ( @str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素 ) returns varchar(1024)
my903687142 2013-04-12
  • 打赏
  • 举报
回复
你可以把要插入的值组成一个数组,然后再拆分,这里有两个函数是专为这种数组提供的,Get_StrArrayLength(取得字符串的长度-元素的个数)和Get_StrArrayStrOfIndex(按指定符号分割字符串,返回分割后指定索引的第几个元素),然后遍历数组取值,再用while循环,这是第一种方法,只不过比较麻烦 第二种方法,就是你把值插入新建一个表中,然后在存储过程中一次查询出来返回一个表,再然后来循环取该表中的值,循环播插入目标表中
mjp1234airen4385 2013-04-12
  • 打赏
  • 举报
回复
100条数据,1个批次就完事。
mjp1234airen4385 2013-04-12
  • 打赏
  • 举报
回复
插入数据就是这个样子啦,可以使用批处理插入,能快不少。
狼烟辉 2013-04-12
  • 打赏
  • 举报
回复
@xml参数传递,批量数据插入。
Csharp_琪 2013-04-12
  • 打赏
  • 举报
回复
引用 5 楼 chb345536638 的回复:
你这样就没意义了吧跟你insert一样执行100次就是跟数据库交互100次
插入这么多条数据,有没有更好的办法呢?
  • 打赏
  • 举报
回复
你这样就没意义了吧跟你insert一样执行100次就是跟数据库交互100次
天使会疯狂 2013-04-12
  • 打赏
  • 举报
回复
存储过程我都写好了了 protected void Button2_Click(object sender, EventArgs e) { SqlHelp he = new SqlHelp(); //是不是在这里加FOR循环呢?,这样和我直接insert 100句连一起啊有什么区别 int i = he.RunProcedureNonQuery("asd",sqlp("a","b")); } public SqlParameter[] sqlp(string name,string pwd) { SqlParameter[] par = new SqlParameter[2]; par[0] = new SqlParameter("@uid", name); par[1] = new SqlParameter("@userPwd", pwd); return par; }
丫旦 2013-04-12
  • 打赏
  • 举报
回复
Create Prc [inserts] @name varcher(20),@sex carcher(4) as bagin insert into table(name,sex) values (@name,@sex) end ********************************************************* 就这样。你在页面上写一个循环用这个存储过程就行了
bdmh 2013-04-12
  • 打赏
  • 举报
回复
你总要把内容都传入存储过程吧,然后在里面分离,遍历insert
  • 打赏
  • 举报
回复

create procedure sp_name()
begin
.........
end

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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