首页 > 开发 > 综合 > 正文

用SET命令捕获多行错误

2024-07-21 02:12:45
字体:
来源:转载
供稿:网友

象单行一样,解决多行的t-sql返回的结果是一个好习惯。在t-sql里使用局部变量得到返回的结果记录集,如果用select子句就会掩饰潜在的问题。

 
如果代码只希望得到一个值,select子句只会分配一个值,尽管实际上可能返回多个值。如果这种分配用set 命令会发生错误。但是,当你希望得到单个值的记录时,用set命令会使t-sql代码更加鲁棒。

下面的脚本演示了这种情况:

create table settest
(pkey int not null
 constraint pk_settest primary key,
name  varchar(30) not null
 constraint df_col1 default 1
)
go
insert settest values (1,'mary johnson')
insert settest values (2,'john highland')
insert settest values (3,'ashly robertson')
insert settest values (4,'mary johnson')
go
declare @myvar int
select @myvar = pkey from settest where name = 'mary johnson'
go
declare @myvar int  -- error will be generated
set @myvar = ( select pkey from settest where name = 'mary johnson' )
go
drop table settest
go

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表