Jim*_*ett 3 sql sql-server sql-server-2005
我收到SQL Server 2005的以下错误消息
消息120,级别15,状态1,过程usp_AttributeActivitiesForDateRange,第18行INSERT语句的选择列表包含的项目少于插入列表.SELECT值的数量必须与INSERT列的数量匹配.
我已复制并粘贴选择列表并将列表插入到Excel中,并验证每个列表中的项目数相同.两个表中的附加主键字段未在insert语句或选择列表中列出.我不确定这是否相关,但可能是可疑的.这是我的存储过程的源代码:
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
Run Code Online (Sandbox Code Playgroud)
Red*_*ter 14
你错过了[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);
Run Code Online (Sandbox Code Playgroud)