我在SQL Server 2005中收到以下错误消息
消息120,级别15,状态1,过程usp_AttributeActivitiesForDateRange,行18。INSERT语句的选择列表包含的项目少于插入列表。SELECT值的数量必须与INSERT列的数量匹配。
我已经复制并粘贴了选择列表,然后将列表插入到excel中,并验证了每个列表中有相同数量的项目。这两个表的附加主键字段都未在插入语句或选择列表中列出。我不确定这是否相关,但可能会令人怀疑。这是我的存储过程的来源:
CREATE PROCEDURE [dbo].[usp_AttributeActivitiesForDateRange]
(
@dtmFrom DATETIME,
@dtmTo DATETIME
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @dtmToWithTime DATETIME
SET @dtmToWithTime = DATEADD(hh, 23, DATEADD(mi, 59, DATEADD(s, 59, @dtmTo)));
-- Get uncontested DC activities
INSERT INTO AttributedDoubleClickActivities
([Time],
[User-ID],
[IP],
[Advertiser-ID],
[Buy-ID],
[Ad-ID],
[Ad-Jumpto],
[Creative-ID],
[Creative-Version],
[Creative-Size-ID],
[Site-ID],
[Page-ID],
[Country-ID],
[State Province],
[Areacode],
[OS-ID],
[Domain-ID],
[Keyword],
[Local-User-ID],
[Activity-Type],
[Activity-Sub-Type],
[Quantity],
[Revenue],
[Transaction-ID],
[Other-Data],
Ordinal,
[Click-Time],
[Event-ID]) SELECT
[Time],
[User-ID],
[IP],
[Advertiser-ID],
[Buy-ID],
[Ad-ID],
[Ad-Jumpto],
[Creative-ID],
[Creative-Version],
[Creative-Size-ID],
[Site-ID],
[Page-ID],
[Country-ID],
[State Province],
[Areacode],
[OS-ID],
[Domain-ID],
[Keyword],
[Local-User-ID]
[Activity-Type],
[Activity-Sub-Type],
[Quantity],
[Revenue],
[Transaction-ID],
[Other-Data],
REPLACE(Ordinal, '?', '') AS Ordinal,
[Click-Time],
[Event-ID]
FROM Activity_Reports
WHERE [Time] BETWEEN @dtmFrom AND @dtmTo
AND REPLACE(Ordinal, '?', '') IN
(SELECT REPLACE(Ordinal, '?', '') FROM Activity_Reports
WHERE [Time] BETWEEN @dtmFrom AND @dtmTo
EXCEPT
SELECT CONVERT(VARCHAR, TripID) FROM VisualSciencesActivities
WHERE [Time] BETWEEN @dtmFrom AND @dtmTo);
END
GO
您[Local-User-ID]
和之间缺少逗号[Activity-Type]
。
尝试:
INSERT INTO attributeddoubleclickactivities
([Time],
[User-ID],
[IP],
[Advertiser-ID],
[Buy-ID],
[Ad-ID],
[Ad-Jumpto],
[Creative-ID],
[Creative-Version],
[Creative-Size-ID],
[Site-ID],
[Page-ID],
[Country-ID],
[State Province],
[Areacode],
[OS-ID],
[Domain-ID],
[Keyword],
[Local-User-ID],
[Activity-Type],
[Activity-Sub-Type],
[Quantity],
[Revenue],
[Transaction-ID],
[Other-Data],
ordinal,
[Click-Time],
[Event-ID])
SELECT [Time],
[User-ID],
[IP],
[Advertiser-ID],
[Buy-ID],
[Ad-ID],
[Ad-Jumpto],
[Creative-ID],
[Creative-Version],
[Creative-Size-ID],
[Site-ID],
[Page-ID],
[Country-ID],
[State Province],
[Areacode],
[OS-ID],
[Domain-ID],
[Keyword],
[Local-User-ID],
[Activity-Type],
[Activity-Sub-Type],
[Quantity],
[Revenue],
[Transaction-ID],
[Other-Data],
REPLACE(ordinal, '?', '') AS ordinal,
[Click-Time],
[Event-ID]
FROM activity_reports
WHERE [Time] BETWEEN @dtmFrom AND @dtmTo
AND REPLACE(ordinal, '?', '') IN (SELECT REPLACE(ordinal, '?', '')
FROM activity_reports
WHERE [Time] BETWEEN
@dtmFrom AND @dtmTo
EXCEPT
SELECT CONVERT(VARCHAR, tripid)
FROM visualsciencesactivities
WHERE [Time] BETWEEN
@dtmFrom AND @dtmTo);
在SQL中,语句用于从数据库中的表中查询或检索数据。 返回存储在表中的数据,返回的结果称为结果集。 语法 这里,表达式是要从中选择数据的表的字段名称。使用以下语法选择表中可用的所有字段: 假设表有以下行记录 - EMP_ID EMP_NAME CITY PHONE_NO SALARY 1 Kristen Chicago 9737287378 150000 2 Russell Austin 9262
主要内容:语法,实例,设置输出列的宽度,Schema 信息SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。 语法 SQLite 的 SELECT 语句的基本语法如下: 在这里,column1, column2...是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法: 实例 假设 COMPANY 表有以下记录: 下面是一个实例,使用 SELE
主要内容:Oracle SELECT示例在本教程中,将学习如何使用Oracle SELECT语句从单个表中查询数据。 在Oracle中,表是由列和行组成。 例如,示例数据库中的表具有以下列:,,,和。表中这些列中也有对应的数据。 要从表的一个或多个列(,,,)中检索数据,请使用以下语法的语句: 在这个语句中: 首先,需要指定要查询数据的表名。 其次,指定想要返回数据的列。 如果需要返回多个列,则需要用逗号()将这些列分隔。 请注意,SE
SELECT 语句用于从数据库中选取数据。 SQL SELECT 语句 SELECT 语句用于从数据库中选取数据。 结果被存储在一个结果表中,称为结果集。 SQL SELECT 语法SELECT column_name,column_name FROM table_name; 与SELECT * FROM table_name; 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面
select语句 select语句从多个发送和接收操作中选择一个执行。它看上去像是switch语句,只不过它的每一个case都是通信操作。 select { case u:= <- ch1: ... case v:= <- ch2: ... ... default: // no value ready to be received .
Go 语言条件语句 select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。 select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。 语法 Go 编程语言中 select 语句的语法如下: select { case communication