表结构定义为
USE
[test]
GO
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
CREATE
TABLE [dbo].[Students](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Age] [int] NULL,
[Sex] [int] NULL,
CONSTRAINT [PK_Students] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
WITH
(PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
表中的内容
ID
|
NAME
|
AGE
|
SEX
|
1
|
小明
|
21
|
1
|
2
|
小芳
|
24
|
2
|
3
|
|
20
|
2
|
/*
当前存储过程实现了通过一个一个输入参数id,来获取用户名字的功能,同时对获取的用户名字进行了判断。
*/
ALTER PROCEDURE dbo.GetNameById
@id int,
@name nvarchar(50) output
AS
select @name=name from students where id =@id
if @name = '' or @name is null
select @name = '
当前用户名字为空!'
RETURN
在查询分析器中测试该存储过程
:
1.
查询id为4的学生名字,没有该id
DECLARE @nametmp
nvarchar(50)
exec GetNameById @id
=4, @name=@nametmp output
print
(@nametmp
)
得到的结果为: 当前用户名字为空
!
2. 查询
id为1的学生名字,有该id
DECLARE @nametmp
nvarchar(50)
exec GetNameById @id
=1, @name=@nametmp output
print
(@nametmp
)
得到的结果为: 小明