问题描述
|
我试图根据表中已有的内容将数据插入表中。我阅读了该表,以获取一个特定月份插入的记录数,然后基于大于或小于十的信息插入信息。读取表后,当我尝试执行该插入操作时,它将引发无效的对象名称。它不是无效的对象,因为它只是读取表。如果这是权限错误,我该如何纠正?我的代码如下。谢谢,
杰森
declare @email VARCHAR(75),@seminarNumber INT,@isValidEmail BIT,@monthlyTotal INT,@statusCode INT
set @email = \'email@domain.com\'
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\',\'datesent\')
values(@seminarNumber,getdate())
end
else if @statusCode = 3
begin
insertEmail_Tracking (\'seminarNumber\',\'Email address missing or invalid\')
end
print @statusCode
解决方法
尝试从列名中删除引号。因此例如:
insert Email_Tracking (seminarNumber,email,reasonNotSent)
values(@seminarNumber,@email,\'Email address missing or invalid\')