2011-06-15 60 views
0

我试图根据表中已有的数据插入数据。我读了表格以获取插入一个certian月份的记录数量,然后在基于关闭的信息大于或小于十的情况下插入信息。在我读完表格后,当我尝试插入时会抛出一个无效的对象名称。它不是一个无效的对象,因为它只是读取表格。如果这是一个权限错误,我该如何纠正它?我的代码如下。谢谢,在读取同一表后插入无效的对象错误

杰森

declare @email VARCHAR(75), 
     @seminarNumber INT, 
     @isValidEmail BIT, 
     @monthlyTotal INT, 
     @statusCode INT 
set @email = '[email protected]' 
set @seminarNumber = '12345' 

set @isValidEmail = dbo.RegexMatch('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$',@email) 

if @isValidEmail = 1 
    begin 
     SELECT @monthlyTotal = count(mailid) 
     from Email_Tracking 
     where emailaddress = @email 
     and year(datesent) = year(getdate()) 
     and month(datesent) = month(getdate()) 
     if @monthlyTotal > 10 
      begin 
       set @statusCode = 1 
      end 
     else 
      begin 
       set @statusCode = 2 
      end 
    end 
else 
    begin 
     set @statusCode = 3 
    end 

if @statusCode = 1 
    begin 
     insert Email_Tracking ('seminarNumber','email','reasonNotSent') 
     values(@seminarNumber,@email,'Maximum surveys for the month have already been sent') 
    end 
else if @statusCode = 2 
    begin 
     insert Email_Tracking ('seminarNumber','email','datesent') 
     values(@seminarNumber,@email,getdate()) 
    end 
else if @statusCode = 3 
    begin 
     insertEmail_Tracking ('seminarNumber','email','reasonNotSent') 
     values(@seminarNumber,@email,'Email address missing or invalid') 
    end 

print @statusCode 
+0

什么是确切的错误消息,请?我期望“不存在或没有权限”或类似的东西。然而,这是一个重要的信息... – gbn 2011-06-15 18:30:05

+0

我会假设'insertEmail_Tracking'不是一个对象(在else之后,如果@statusCode = 3')? – 2011-08-09 14:11:57

回答

0

尝试删除从列名的报价。所以例如:

insert Email_Tracking (seminarNumber,email,reasonNotSent) 
values(@seminarNumber,@email,'Email address missing or invalid')