21 行受影响)(4 行受影响)(4 行受影响)
insert into [dbo].[sp_tmp_report_data](fd_name,t4,t3,t2,t1) values('上报单位','授信项下单笔信贷业务','非授信项下单笔信贷业','额度授信业务','信用评级')
消息 208,级别 16,状态 1,第 1 行
对象名 'dbo.sp_tmp_report_data' 无效。
执行 上面那些insert语句是出错,单独复制出来能够执行。救命啊。生成insert代码部份:
-- 如表已经存在则删除
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_tmp_report_data]') AND type in (N'U'))
begin
SET @DELETE_TMP_TABLE='DROP TABLE [dbo].[sp_tmp_report_data]'
EXEC(@DELETE_TMP_TABLE)
end
declare @masterfields_count int,@master_tb nvarchar(1000),@master_tb_str nvarchar(1000),@master_insert_sql nvarchar(1000),@master_insert_sql_str nvarchar(1000)
set @master_tb_str=''
set @master_insert_sql_str=''
select @master_tb='CREATE TABLE [dbo].[sp_tmp_report_data]([id] [int] IDENTITY(1,1) NOT NULL,[fd_name] [nchar](30) NULL'
select @master_insert_sql='insert into [dbo].[sp_tmp_report_data](fd_name'
select @masterfields_count=count(*) from tmp_rp_hltb_tbidx1 while @masterfields_count>0
begin
select  @master_tb_str=@master_tb_str +',[t'+replace(str(@masterfields_count),' ','')+'] [nchar](30) NULL'
select  @master_insert_sql_str = @master_insert_sql_str + ',t'+replace(str(@masterfields_count),' ','')
select  @masterfields_count=@masterfields_count-1
end
select @master_tb=rtrim(@master_tb) + rtrim(@master_tb_str) + ')  ON [PRIMARY]'
select @master_insert_sql=@master_insert_sql + rtrim(@master_insert_sql_str) + ')'declare @tistr varchar(20),@ti_insert_sql varchar(1000)
set @ti_insert_sql=''''+rtrim(@sl_fd_name)+''''
declare createtitle cursor for select fd_name from tmp_rp_hltb_tbidx1
open createtitle
fetch next from createtitle into @tistr
while ( @@FETCH_STATUS = 0 )
begin
select @ti_insert_sql = @ti_insert_sql +',''' + rtrim(@tistr) +''''
fetch next from createtitle into @tistr
end
close createtitle
deallocate createtitle
select @master_insert_sql_str=@master_insert_sql+' values(' + @ti_insert_sql + ')'
print @master_insert_sql_strEXEC(@master_insert_sql_str)
EXEC(@master_tb) --创建主表-----结束----------

解决方案 »

  1.   

    insert into [dbo].[sp_tmp_report_data](fd_name,t4,t3,t2,t1) values('上报单位','授信项下单笔信贷业务','非授信项下单笔信贷业','额度授信业务','信用评级') 
    消息 208,级别 16,状态 1,第 1 行 
    对象名 'dbo.sp_tmp_report_data' 无效。 
    这个是什么原因啊
      

  2.   

    呵呵
    对象名 无效
    我早就遇到过了
    解决办法是:迅速看一下你连接的是否是你想要的数据库
    说明对象名 'dbo.sp_tmp_report_data' 此表不在应该所在的数据库中!
      

  3.   

    EXEC(@master_insert_sql_str) 
    EXEC(@master_tb) --创建主表 ---EXEC(@master_tb) --创建主表 
    EXEC(@master_insert_sql_str) 看你程序一开始就先判断存在此表删除 ,下面是不是先要创建才能insert呀,换一下先后次序看看