爱飞 发表于 2015-1-16 14:19:22

存储历程return值

MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。存储历程代码以下:

ALTERPROCEDUREdbo.testOutput
(
@p1int,
@p2intOUTPUT,
@p3int
)
AS
/*SETNOCOUNTON*/
select@p2=count(*)fromtestProcwheretestidbetween@p1and@p3
RETURN@@rowcount
这个存储历程前往2个值,一个是output型参数@p2,别的一个是数据库自带的return值@@rowcount(语句所影响的行数)。

C#程序:

SqlCommandcom=newSqlCommand("testOutput",con);
com.CommandType=CommandType.StoredProcedure;
SqlParameterp1=newSqlParameter("@p1",SqlDbType.Int);
SqlParameterp2=newSqlParameter("@p2",SqlDbType.Int);
SqlParameterp3=newSqlParameter("@p3",SqlDbType.Int);
SqlParameterrowcount=newSqlParameter("@@rowcount",SqlDbType.Int);
p1.Value=int.Parse(textBox2.Text);
p2.Direction=ParameterDirection.Output;//把p2设置为output型参数
p3.Value=int.Parse(textBox3.Text);
rowcount.Direction=ParameterDirection.ReturnValue;//把rowcount类////型设置为returnvalue型
com.Parameters.Add(p1);
com.Parameters.Add(p2);
com.Parameters.Add(p3);
com.Parameters.Add(rowcount);
com.ExecuteNonQuery();
MessageBox.Show(p2.Value.ToString());//实行过存储历程今后,output参数p2和@@rowcount就主动前往了值。
MessageBox.Show(rowcount.Value.ToString());
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统

蒙在股里 发表于 2015-1-18 12:54:30

理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识

精灵巫婆 发表于 2015-1-25 16:54:53

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

山那边是海 发表于 2015-2-3 11:54:41

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

变相怪杰 发表于 2015-2-8 22:08:23

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

柔情似水 发表于 2015-2-26 12:14:26

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

第二个灵魂 发表于 2015-3-8 15:09:02

无法深入到数据库系统层面去了解和探究

海妖 发表于 2015-3-16 03:47:38

总感觉自己还是不会SQL

小妖女 发表于 2015-3-22 20:02:58

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
页: [1]
查看完整版本: 存储历程return值