如何用T-SQL创建函数,返回1或-1,并调用。

2025-03-24 16:42:13
推荐回答(5个)
回答(1):

T-SQL中创建函数的方法如下:
Create function 函数名(参数)
Returns 返回值数据类型 //这里根据需要设置为1或者-1
[with {Encryption | Schemabinding }]
[as]
begin
SQL语句(必须有return 变量或值)
End
调用:
select 函数名(参数)就可以了。

举例如下:
CREATE FUNCTION check_pno (@pno varchar(20))
RETURNS int
AS
BEGIN
DECLARE @ISid int
IF (EXISTS (SELECT * FROM 员工表 WHERE pno = @pno))
begin
set @ISid=1
end
else
begin
SET @ISid=-1
end
RETURN(@ISid)
END --具体查询语句,调用该函数,若返回1,向salary表中插入一条记录(员工表person,员工号pno)
declare isid int
select isid=check_pno('00001')
if (isid=1)
begin
insert into salary (person,pno) values ('00001','张三')
end

回答(2):

按我的思路做的,没具体测试,CREATE FUNCTION check_pno (@pno varchar(20))
RETURNS int
AS
BEGIN
DECLARE @ISid int
IF (EXISTS (SELECT * FROM 员工表 WHERE pno = @pno))
begin
set @ISid=1
end
else
begin
SET @ISid=-1
end
RETURN(@ISid)
END --具体查询语句,调用该函数,若返回1,向salary表中插入一条记录(员工表person,员工号pno)
declare isid int
select isid=check_pno('00001')
if (isid=1)
begin
insert into salary (person,pno) values ('00001','张三')
end

回答(3):

/*我运行过了,没有问题,只是下面插入表时,有多少参数你自己设定*/create function check_pno(@pno char(6)) /*注意这里的@pno类型要与你员工表的pno 类型一致*/
returns integer
as
begin
declare @num int
if exists (select pno from 员工表
where pno=@pno)
select @num=1
else
select @num=-1
return @num
enddeclare @num int
select @num=dbo.check_pno('000008')
if @num=1 insert into salary values('000008',2005,2,2399,230,12.4)
/*我这是举例你要插入的数据,具体的你自己决定*/

回答(4):

不好意思,不懂这T-SQL是什么意思,我们只学习了C语言,但没涉及过这个名词,或许以后会学吧,所以这个帮不了你了..

回答(5):

我也不懂,不过我帮你打打气吧