sql server多部分标识符“&引用;无法绑定存储过程
我创建一个存储过程,在其中调用两个函数 我得到一个错误: Msg 4104,16级,状态1,程序添加翻译,第25行sql server多部分标识符“&引用;无法绑定存储过程,sql,sql-server,stored-procedures,sql-function,Sql,Sql Server,Stored Procedures,Sql Function,我创建一个存储过程,在其中调用两个函数 我得到一个错误: Msg 4104,16级,状态1,程序添加翻译,第25行 无法绑定多部分标识符“.word” 这是我的存储过程: ALTER PROCEDURE [dbo].[Add_Translation] @english nvarchar(70), @kurdish nvarchar(70), @english_category int, @kurdish_category int, @result int out
无法绑定多部分标识符“.word” 这是我的存储过程:
ALTER PROCEDURE [dbo].[Add_Translation]
@english nvarchar(70),
@kurdish nvarchar(70),
@english_category int,
@kurdish_category int,
@result int out
AS
BEGIN
SET NOCOUNT ON;
if @english is not null and @kurdish is not null and @english_category is not null and @kurdish_category is not null
begin
declare @intEnId int=-1;
exec @intEnId = Check_English_word @text = @english;
declare @identityEnglish int;
declare @identityKurdish int;
if @intEnId = -1
begin
insert into english_table values(@english, @english_category);
set @identityEnglish = SCOPE_IDENTITY();
end
else
begin
set @identityEnglish = (select e.english_id from english_table e where UPPER(.word)=UPPER(@english));
end
declare @intKuId int=-1;
exec @intKuId=Check_Kurdish_Word @word=@kurdish;
if @intKuId =-1
begin
insert into kurdish_table values(@kurdish, @kurdish_category);
set @identityKurdish = SCOPE_IDENTITY();
end
else
begin
set @identityKurdish = (select k.kurdish_id from kurdish_table k where upper(k.word)=upper(@kurdish));
end
declare @translated int =0;
exec @translated = Check_Translation @english_id = @identityEnglish, @kurdish_id = @identityKurdish;
if @translated=0
begin
insert into transactions values(@identityEnglish, @identityKurdish);
set @result = 1;
end
else
begin
set @result = 2;
end
end
else
begin
set @result = 0;
end
END
以下是第一个函数:
ALTER FUNCTION [dbo].[Check_English_word]
(
@text nvarchar(70)
)
RETURNS int
AS
BEGIN
DECLARE @Result int
set @Result=-1;
if @text is not null
begin
SELECT @Result = e.english_id
from english_table e
where UPPER(e.word) = UPPER(@text);
end
RETURN @Result
END
ALTER FUNCTION [dbo].[Check_Kurdish_Word]
(
@word nvarchar(70)
)
RETURNS int
AS
BEGIN
DECLARE @Result int
set @Result=-1;
if @word is not null
begin
SELECT @Result = k.kurdish_id
from kurdish_table k
where UPPER(k.word) = UPPER(@word);
end
RETURN @Result
END
第二个功能:
ALTER FUNCTION [dbo].[Check_English_word]
(
@text nvarchar(70)
)
RETURNS int
AS
BEGIN
DECLARE @Result int
set @Result=-1;
if @text is not null
begin
SELECT @Result = e.english_id
from english_table e
where UPPER(e.word) = UPPER(@text);
end
RETURN @Result
END
ALTER FUNCTION [dbo].[Check_Kurdish_Word]
(
@word nvarchar(70)
)
RETURNS int
AS
BEGIN
DECLARE @Result int
set @Result=-1;
if @word is not null
begin
SELECT @Result = k.kurdish_id
from kurdish_table k
where UPPER(k.word) = UPPER(@word);
end
RETURN @Result
END
您在此行中缺少一个
e
set @identityEnglish=(select e.english_id from english_table e
where UPPER(.word)=UPPER(@english));
换成
set @identityEnglish=(select e.english_id from english_table e
where UPPER(e.word)=UPPER(@english));
此外,在执行插入操作时,最好指定列-
即
应该是
insert into english_table (word, category) values(@english,@englsih_category);
它应该是
@english\u category
,而不是@englsish\u category
(只是打字错误)