每当我和其他sql语句一起运行时,都会出错:
CREATE FUNCTION'必须是查询批处理中的第一个语句
但是,每当我单独执行它时(在我的情况下没有SELECT * FROM CUSTOMER它可以工作)
SELECT * FROM CUSTOMER;
create function udfLogin
(@username nvarchar(100), @password nvarchar(100))
returns int as
begin
if exists(select 1 from CUSTOMER where Username = @username and [Password] = @password)
return 1
return 0;
end
答案 0 :(得分:2)
您需要包含批处理分隔符,例如Go
SELECT * FROM CUSTOMER
GO
create function udfLogin
(@username nvarchar(100), @password nvarchar(100))
returns int as
begin
if exists(select 1 from CUSTOMER where Username = @username and [Password] = @password)
return 1
return 0;
end
Go
答案 1 :(得分:1)
您需要将每批代码与GO关键字分开。
SELECT * FROM CUSTOMER
GO
create function udfLogin
(@username nvarchar(100), @password nvarchar(100))
returns int as
begin
if exists(select 1 from CUSTOMER where Username = @username and
[Password] = @password)
return 1
return 0;
end
Go
答案 2 :(得分:0)
如错误消息所示,CREATE FUNCTION语句必须是查询批处理中的第一个语句。在CREATION FUNCTION语句之前不应该有其他语句使它不是查询批处理中的第一个语句。如消息所示,为避免此错误,CREATE FUNCTION语句必须是查询批处理中的第一个语句。
SQL将该语句作为查询批处理执行。
批量使用规则
以下规则适用于使用批次:
创建默认,创建功能,创建程序,创建规则,创建 无法组合SCHEMA,CREATE TRIGGER和CREATE VIEW语句 与批处理中的其他语句。 CREATE语句必须启动批处理。该批次中的所有其他语句将被解释为第一个CREATE语句定义的一部分。