CREATE proc [dbo].[subLiveExam]
(
@th int,
@right int,
@ksda varchar(500),
@paperId int,
@tx int
)
as
if @tx=0
begin 
UPDATE [vfwzsjk].[dbo].[liveExam]
   SET 
  da=@right
 WHERE th=@th and paperid=@paperid 
end
else if @tx=2
begin
UPDATE [vfwzsjk].[dbo].[liveExam]
   SET 
      [ksda] = @ksda,
  da=@right
 WHERE th=@th and paperid=@paperid and tx=2
end
else 
begin
UPDATE [newvf].[dbo].[liveExam]
   SET 
      [ksda] = @ksda
 WHERE th=@th and paperid=@paperid and tx=1
end
GO
这是我原数据库中一个存储过程,后来由于一些原因 我把数据库名称改变了
原数据库名称是:vfwzsjk  现数据库名称:BBT程序在使用该存储过程的过程中报错   指出一个vfwzsjk对象不存在  ,我把[vfwzsjk].去掉后,又出现一些字段不存在的报错信息?请问我这种问题该怎么解决?

解决方案 »

  1.   

    把存储过程中的vfwzsjk替换为BBT
      

  2.   

    把当中的[vfwzsjk]全部替换为[BBT]
      

  3.   

    最开始我以为LZ的意思是 存储过程中的vfwzsjk替换为BBT以后仍然报错,但是结果好像是LZ没有改存储过程中的内容?
      

  4.   

    Alter proc [dbo].[subLiveExam]
    (
    @th int,
    @right int,
    @ksda varchar(500),
    @paperId int,
    @tx int
    )
    as
    if @tx=0
    begin 
    UPDATE [BBT].[dbo].[liveExam]
       SET 
          da=@right
     WHERE th=@th and paperid=@paperid 
    end
    else if @tx=2
    begin
    UPDATE [BBT].[dbo].[liveExam]
       SET 
          [ksda] = @ksda,
          da=@right
     WHERE th=@th and paperid=@paperid and tx=2
    end
    else 
    begin
    UPDATE [newvf].[dbo].[liveExam]
       SET 
          [ksda] = @ksda
     WHERE th=@th and paperid=@paperid and tx=1
    end
    GO
      

  5.   

    要么lz就把数据库的名字再改回去不就可以吗?不然就得将储存过程里的数据库名全都要改BBT
      

  6.   


    替换vfwzsjk 为新的数据库名称BBT,另外,需核对对应表的字段名称是否已经修改。
      

  7.   

    外部数据库链接怎么重弄下,请指点下,谢谢如果我把vfwzsjk 改为BBT,存储过程会报错  错误信息是该表没有***列 ,我到现实中的表中去查看   还真没有***列