create procedure [dbo].[论文个人得分] 
as 
begin 
declare @员工编号char(10) 
declare @score1 float 
declare @姓名char(50) 
declare @论文名称char(50) 
declare @分工char(10) 
declare @参加人数int 
declare @总分float 
set @姓名=(select 姓名from 教职员工,编写where 编写.员工编号=教职员工.员工编号and @员工编号= 编写.员工编号) 
set @论文名称=(select 论文名称from 论文,编写where 编写.论文编号=论文.论文编号and 编写.员工编号=@员工编号) 
set @分工=(select 分工from 编写,论文where 编写.论文编号=论文.论文编号and 编写. 员工编号=@员工编号) 
set @参加人数=(select 参加人数from 论文, 编写where 编写.论文编号=论文.论文编号and 编写.员工编号=@员工编号)
set @总分=(select 总分from 论文,编写where 编写.论文编号=论文.论文编号and 编写. 员工编号=@员工编号) 
begin 
if @参加人数=1 
set @score1=@总分
else if @参加人数=2 and @分工='主持人' 
set @score1 = @总分*0.7 
else if @参加人数=2 and @分工='参加人' 
set @score1 = @总分*0.3 
else if @参加人数=3 and @分工='主持人' 
set @score1 = @总分*0.6 
else if @参加人数=3 and @分工='参加人' 
set @score1 = @总分*0.3 
else if @参加人数=3 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=4 and @分工='主持人' 
set @score1 = @总分*0.5 
else if @参加人数=4 and @分工='参加人' 
set @score1 = @总分*0.3 
else if @参加人数=4 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=4 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=5 and @分工='主持人' 
set @score1 = @总分*0.5 
else if @参加人数=5 and @分工='参加人' 
set @score1 = @总分*0.2 
else if @参加人数=5 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=5 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=5 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=6 and @分工='主持人' 
set @score1 = @总分*0.5 
else if @参加人数=6 and @分工='参加人' 
set @score1 = @总分*0.2 
else if @参加人数=6and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=6 and @分工='参加人' 
set @score1 = @总分*0.1 
else if @参加人数=6 and @分工='参加人' 
set @score1 = @总分*0.05 
else if @参加人数=6 and @分工='参加人'
set @score1 = @总分*0.05 
end 
update 编写
declare @员工编号char(10)
set 得分=@score1 where 编写.员工编号=@员工编号
end 
print '职工号:'+@员工编号+'职工名:'+@姓名+'论文得分为:'+str(@score1)消息 102,级别 15,状态 1,过程 论文个人得分,第 4 行
'(' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 6 行
'(' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 11 行a
'.' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 12 行
'.' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 13 行
'.' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 14 行
'.' 附近有语法错误。
消息 102,级别 15,状态 1,过程 论文个人得分,第 15 行
'.' 附近有语法错误。
消息 137,级别 15,状态 2,过程 论文个人得分,第 17 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 18 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 19 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 20 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 21 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 22 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 23 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 24 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 25 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 26 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 27 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 28 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 29 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 30 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 31 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 32 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 33 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 34 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 35 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 36 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 37 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 38 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 39 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 40 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 41 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 42 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 43 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 44 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 45 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 46 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 47 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 48 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 49 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 50 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 51 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 52 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 53 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 54 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 55 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 56 行
必须声明标量变量 "@总分"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 57 行
必须声明标量变量 "@参加人数"。
消息 137,级别 15,状态 2,过程 论文个人得分,第 58 行
必须声明标量变量 "@总分"。
消息 156,级别 15,状态 1,过程 论文个人得分,第 61 行
关键字 'declare' 附近有语法错误。
消息 137,级别 15,状态 2,过程 论文个人得分,第 64 行
必须声明标量变量 "@员工编号"。

解决方案 »

  1.   

    --注意变量后面加个空格再写类型
    declare @员工编号 char(10)  
    declare @score1 float  
    declare @姓名 char(50)  
    declare @论文名称 char(50)  
    declare @分工 char(10)  
    declare @参加人数 int  
    declare @总分 float 
      

  2.   

    create procedure [dbo].[论文个人得分]  
    as  
    begin  
    declare @员工编号 char(10)  
    declare @score1 float  
    declare @姓名 char(50)  
    declare @论文名称 char(50)  
    declare @分工 char(10)  
    declare @参加人数 int  
    declare @总分 float  
    set @姓名=(select 姓名from 教职员工,编写 where 编写.员工编号=教职员工.员工编号 and @员工编号= 编写.员工编号)  
    set @论文名称=(select 论文名称from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)  
    set @分工=(select 分工from 编写,论文 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    set @参加人数=(select 参加人数from 论文, 编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)
    set @总分=(select 总分from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    begin  
    if @参加人数=1  
    set @score1=@总分
    else if @参加人数=2 and @分工='主持人'  
    set @score1 = @总分*0.7  
    else if @参加人数=2 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='主持人'  
    set @score1 = @总分*0.6  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=6and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.05  
    else if @参加人数=6 and @分工='参加人'
    set @score1 = @总分*0.05  
    end 
    declare @员工编号1 char(10) 
    update 编写
    set 得分=@score1 where 编写.员工编号=@员工编号1
    end  
    print '职工号:'+@员工编号+'职工名:'+@姓名+'论文得分为:'+str(@score1)
      

  3.   

    and也有问题的 你为什么那么喜欢把关键字写那么紧密?
      

  4.   

    create procedure [dbo].[论文个人得分] 
    as 
    begin 
    declare @员工编号 varchar(10)
    declare @score1 float 
    declare @姓名 char(50) 
    declare @论文名称 char(50) 
    declare @分工 char(10) 
    declare @参加人数 int 
    declare @总分 float 
    set @姓名=(select 姓名from 教职员工,编写where 编写.员工编号=教职员工.员工编号and @员工编号= 编写.员工编号) 
    set @论文名称=(select 论文名称from 论文,编写where 编写.论文编号=论文.论文编号and 编写.员工编号=@员工编号) 
    set @分工=(select 分工from 编写,论文where 编写.论文编号=论文.论文编号and 编写. 员工编号=@员工编号) 
    set @参加人数=(select 参加人数from 论文, 编写where 编写.论文编号=论文.论文编号and 编写.员工编号=@员工编号)
    set @总分=(select 总分from 论文,编写where 编写.论文编号=论文.论文编号and 编写. 员工编号=@员工编号) 
    begin 
    if @参加人数=1 
    set @score1=@总分
    else if @参加人数=2 and @分工='主持人' 
    set @score1 = @总分*0.7 
    else if @参加人数=2 and @分工='参加人' 
    set @score1 = @总分*0.3 
    else if @参加人数=3 and @分工='主持人' 
    set @score1 = @总分*0.6 
    else if @参加人数=3 and @分工='参加人' 
    set @score1 = @总分*0.3 
    else if @参加人数=3 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=4 and @分工='主持人' 
    set @score1 = @总分*0.5 
    else if @参加人数=4 and @分工='参加人' 
    set @score1 = @总分*0.3 
    else if @参加人数=4 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=4 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=5 and @分工='主持人' 
    set @score1 = @总分*0.5 
    else if @参加人数=5 and @分工='参加人' 
    set @score1 = @总分*0.2 
    else if @参加人数=5 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=5 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=5 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=6 and @分工='主持人' 
    set @score1 = @总分*0.5 
    else if @参加人数=6 and @分工='参加人' 
    set @score1 = @总分*0.2 
    else if @参加人数=6and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=6 and @分工='参加人' 
    set @score1 = @总分*0.1 
    else if @参加人数=6 and @分工='参加人' 
    set @score1 = @总分*0.05 
    else if @参加人数=6 and @分工='参加人'
    set @score1 = @总分*0.05 
    end 
    update 编写
    declare @员工编号char(10)
    set 得分=@score1 where 编写.员工编号=@员工编号
    end 
    print '职工号:'+@员工编号+'职工名:'+@姓名+'论文得分为:'+str(@score1)消息 102,级别 15,状态 1,过程 论文个人得分,第 11 行
    '.' 附近有语法错误。
    消息 102,级别 15,状态 1,过程 论文个人得分,第 12 行
    '.' 附近有语法错误。
    消息 102,级别 15,状态 1,过程 论文个人得分,第 13 行
    '.' 附近有语法错误。
    消息 102,级别 15,状态 1,过程 论文个人得分,第 14 行
    '.' 附近有语法错误。
    消息 102,级别 15,状态 1,过程 论文个人得分,第 15 行
    '.' 附近有语法错误。
    消息 156,级别 15,状态 1,过程 论文个人得分,第 61 行
    关键字 'declare' 附近有语法错误。谢谢
      

  5.   


    --把你的sql 关键字和字段名或变量分用空格分开
    create procedure [dbo].[论文个人得分]  
    as   
    begin
    declare @员工编号 char(10)
    declare @score1 float  
    declare @姓名 char(50)
    declare @论文名称 char(50)  
    declare @分工 char(10)  
    declare @参加人数 int  
    declare @总分 float  
    set @姓名=(select 姓名 from 教职员工,编写 where 编写.员工编号=教职员工.员工编号 and @员工编号= 编写.员工编号)  
    set @论文名称=(select 论文名称 from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)  
    set @分工=(select 分工 from 编写,论文 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    set @参加人数=(select 参加人数 from 论文, 编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)
    set @总分=(select 总分 from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    begin  
    if @参加人数=1  
    set @score1=@总分
    else if @参加人数=2 and @分工='主持人'  
    set @score1 = @总分*0.7  
    else if @参加人数=2 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='主持人'  
    set @score1 = @总分*0.6  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=6and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.05  
    else if @参加人数=6 and @分工='参加人'
    set @score1 = @总分*0.05  
    end  
    update 编写
    set 得分=@score1 where 编写.员工编号=@员工编号
    end  
    print '职工号:'+@员工编号+'职工名:'+@姓名+'论文得分为:'+str(@score1)
      

  6.   

    create procedure [dbo].[论文个人得分]  
    as  
    begin  
    declare @员工编号 char(10)  
    declare @score1 float  
    declare @姓名 char(50)  
    declare @论文名称 char(50)  
    declare @分工 char(10)  
    declare @参加人数 int  
    declare @总分 float  
    set @姓名=(select 姓名 from 教职员工,编写 where 编写.员工编号=教职员工.员工编号 and @员工编号= 编写.员工编号)  
    set @论文名称=(select 论文名称 from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)  
    set @分工=(select 分工 from 编写,论文 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    set @参加人数=(select 参加人数 from 论文, 编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)
    set @总分=(select 总分 from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    begin  
    if @参加人数=1  
    set @score1=@总分
    else if @参加人数=2 and @分工='主持人'  
    set @score1 = @总分*0.7  
    else if @参加人数=2 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='主持人'  
    set @score1 = @总分*0.6  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=3 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.3  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=4 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=5 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='主持人'  
    set @score1 = @总分*0.5  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.2  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.1  
    else if @参加人数=6 and @分工='参加人'  
    set @score1 = @总分*0.05  
    else if @参加人数=6 and @分工='参加人'
    set @score1 = @总分*0.05  
    end 
    declare @员工编号1 char(10) 
    update 编写
    set 得分=@score1 where 编写.员工编号=@员工编号1
    end  
    print '职工号:'+@员工编号+'职工名:'+@姓名+'论文得分为:'+str(@score1)
    最后面declare @员工编号1 char(10) 这个应该重新取个名字 不然会报错
      

  7.   

    1、楼主的语法错误我就不说了,上面处理的差不多了;
    2、鉴于楼主写的存储过程的风格,和平时上层的编码风格类似。我建议楼主多看看别人写的存储过程。
    3、比如:楼主喜欢用分支结构,分支结构用在表结构内层没问题,但是放外层就太影响数据库效率了。   select fieldname case when 1 then 'good' case when 2 then 'wonderful' else 'fat'  end as fieldname1 ,fieldname2 from tablename where 
    这样的表内分支是非常能提高效率的,而不是楼主那样,大量引用变量,不去发挥数据库的优势
      

  8.   

    set @姓名=(select 姓名from 教职员工,编写 where 编写.员工编号=教职员工.员工编号 and @员工编号= 编写.员工编号)  
    set @论文名称=(select 论文名称from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)  
    set @分工=(select 分工from 编写,论文 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    set @参加人数=(select 参加人数from 论文, 编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)
    set @总分=(select 总分from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写. 员工编号=@员工编号)  
    消息 4104,级别 16,状态 1,过程 论文个人得分,第 11 行
    无法绑定由多个部分组成的标识符 "编写.员工编号"。
    消息 4104,级别 16,状态 1,过程 论文个人得分,第 11 行
    无法绑定由多个部分组成的标识符 "教职员工.员工编号"。
    消息 4104,级别 16,状态 1,过程 论文个人得分,第 11 行
    无法绑定由多个部分组成的标识符 "编写.员工编号"。
    消息 207,级别 16,状态 1,过程 论文个人得分,第 11 行
    列名 '姓名from' 无效。
    消息 207,级别 16,状态 1,过程 论文个人得分,第 11 行
    列名 '编写' 无效。
    消息 116,级别 16,状态 1,过程 论文个人得分,第 11 行
    当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
      

  9.   


    请在中文变量名或字段名与 from 之类的关键字之间加一空格,谢谢!
      

  10.   

    set @姓名=(select 姓名 from 教职员工,编写 where 编写.员工编号=教职员工.员工编号 and @员工编号= 编写.员工编号)  
    set @论文名称=(select 论文名称 from 论文,编写 where 编写.论文编号=论文.论文编号 and 编写.员工编号=@员工编号)  消息 209,级别 16,状态 1,过程 论文个人得分,第 11 行
    列名 '姓名' 不明确。
    消息 209,级别 16,状态 1,过程 论文个人得分,第 12 行
    列名 '论文名称' 不明确。谢谢指导,刚刚接触
      

  11.   

    感觉楼主还是用其他程序的思想来写SQL代码,茫茫多的else if,看的眼晕啊。
    建议多看看一些基础方面的资料,SQL是基于集合的,而不是面向对象的,如果思路转变不过来,写出来的SQL代码效率不会高的。
      

  12.   

    这么多的if else 啊,楼主太牛逼了~