存储历程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等多种操作系统 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 无法深入到数据库系统层面去了解和探究 总感觉自己还是不会SQL 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
页:
[1]