存储过程最好只有一个返回值的select语句,让系统直接判断出存储过程返回的字段。前面这个写法在SQL Query中没有任何问题,但在NET开发程序中有时就不能返回结果。
不良写法
create procedure p_employee
(@id int)
AS
if @id=1
select name,age from employee where dept='IT'
if @id=2
select name,age from employee where dept='HR'
较好的写法应该是:
create procdure p_employee
(@id int)
AS
create table #temp
(
name varchar(10),
age int
)
if @id=1
insert into #temp(name,age)
select name,age from employee where dept='IT'
if @id=2
insert into #temp(name,age)
select name,age from employee where dept='HR'
select name,age from #temp
博客指出存储过程最好用一个返回值的select语句,方便系统判断返回字段。以NET开发程序为例,展示了不良写法和较好写法。不良写法在SQL Query中没问题,但在NET中可能无法返回结果,较好写法通过创建临时表插入数据再查询。





