USE [manage]
GO/****** Object: Table [dbo].[Employee] Script Date: 08/26/2011 16:56:23 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOSET ANSI_PADDING ON
GOCREATE TABLE [dbo].[Employee](
[eid] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](20) NULL,
[sex] [varchar](4) NULL,
[age] [int] NULL,
[birthday] [datetime] NULL,
[did] [int] NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[eid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOSET ANSI_PADDING OFF
GOcreate procedure insertemp
(
@name varchar(20),
@sex varchar(10),
@age int,
@birthday date,
@did int
)
as
insert into Employee values(@name,@sex,@age,@birthday,@did);
go
exec insertemp '尼斯','F',19,'1991-01-11',1002
exec insertemp '张三','M',19,'1991-09-22',1002
create procedure seemp(
@age int,
@name varchar(20) output
)as
select @name=name from Employee where age=@age;
go
declare @name varchar(20)
exec seemp 19,@name output
print'姓名:'+@name
go
为什么输出的只有一个????、、
请高手帮忙解决
select @name=name from Employee where age=@age
--select是循环赋值的,一直循环到结果集中的最后一个结果赋给变量结束
--要逐个赋值可以用游标或者循环,放到一起可以看楼上
然后select @name=@name+name from Employee where age=@age;
这样写只会输出最后一个值,
设置set @name=''
select @name=@name+char(10)+name from Employee where age=@age;
就能把结果拼接起来