然后先执行
create procedure proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入数据
end
go
create procedure proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新数据
end
go
--其虚丛中proc_insert为存储过程名,可自定义 procedure可使用简写proc
上面执行完成后调用存储过程
exec proc_insert '晓华'--将"晓华"添加到test表中
exec proc_update '小明','晓华' --将表御唤中'晓华' 改为'小明',必须与存储过程变量顺序相同
exec proc_update @oldname='小明',@newname='晓华差拆樱'--与存储过程变量顺序可以不同
drop procedure proc_insert 删除存储过程proc_insert
//使用SqlDataAdapter调用存储过程(主要应用于查询)private void Form1_Load(object sender, EventArgs e)//窗口加载事件桐高
{
SqlConnection conn = null//声明SqlConnection,用于连接数据库
try
{
conn = new SqlConnection("server=.database=要连接的数据库名uid=登陆数据库的账号pwd=登录数据库的密码")
SqlDataAdapter sda = new SqlDataAdapter("proc_SelectAllStuInfo",conn)//声明SqlDataAdapter适配器,括号里的第一个参数是要掉的存储过程的名字,第二个参数是连接数据库的Conn。
DataSet ds = new DataSet()//new一个DataSet数据集(临时仓库)
sda.Fill(ds)//把适配器里的结果填充到DataSet里
DataTable dt = ds.Tables[0]//创建一中陪个DataTable获取DataSet里的数据
this.dgvStuInfo.DataSource = dt//把DataTable中的数据绑定到卖轮蠢DataGridView中
}
//抓异常
catch (Exception ex)
{
MessageBox.Show(ex.Message)
return
}
finally
{
conn.Close()//最后关闭数据库连接
}
}
实际上存储过程向表中插入数据和sql执行的缺孙区别是不大的,只不过银扮陪是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。
CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3is
--Result1 VARCHAR2(50)
VAR_num number
begin
VAR_num:=1
while
VAR_num< 1000000
LOOP
insert into rp_trans_log_day
(trans_time,
锋蠢 trans_province,
trans_type,
score_range,
rule_name,
trans_num)
select to_date('2013/10/29', 'yyyy-mm-dd'),
round(dbms_random.value(1, 300)) || '省',
round(dbms_random.value(1, 800)) || '类型',
round(dbms_random.value(1, 100)) || '风险分值',
round(dbms_random.value(1, 300)) || '规则名称',
'1'
from dual
commit
VAR_num:=VAR_num+1
end loop
end insert_data_4_pressure_3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)