I didn't feel like digging up the e-mail but below is the e-mail I sent to
sqlwish@microsoft.com. I'd be very curious to see if anyone can easily reproduce this bug, and if it is in fact a bug. If so, it's kind of scary because this is related to the core update of the actual data.
Original E-Mail:
BELOW TEXT IN A TEXT FILE ATTACHMENT
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RefTextMessages69]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[TextMessagesCometTracker] DROP CONSTRAINT RefTextMessages69
GO
ALTER TABLE [dbo].[TextMessagesQualcomm] DROP CONSTRAINT RefTextMessages70
GO
drop table [dbo].[TextMessages]
GO
[TextMessageID] [int] IDENTITY (1, 1) NOT NULL ,
[TextMessageTypeID] [tinyint] NOT NULL ,
[Prefix] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ControlNumber] [int] NULL ,
[Suffix] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[InternalShortID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[TruckID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[DriverID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EquipmentNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ChassisNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[SealNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[BillofLadingNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ContainerType] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Pieces] [int] NULL ,
[Weight] [decimal](13, 4) NULL ,
[User1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[User2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[User3] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[User4] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EmptyGood] [bit] NULL ,
[LotRow] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[HoursDelayed] [decimal](18, 2) NOT NULL ,
[UserComments] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[DispatchStatus] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CreateDispatch] [bit] NOT NULL ,
[ExternalStatus] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CurrentCity] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CurrentState] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[MessageText] [varchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[IsArchived] [bit] NOT NULL ,
[ExternalDateReceived] [smalldatetime] NOT NULL ,
[SystemDateInserted] [smalldatetime] NOT NULL ,
[SystemDateUpdated] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
CONSTRAINT [PK_TEXTMESSAGES] PRIMARY KEY CLUSTERED
(
[TextMessageID]
) ON [PRIMARY]
GO
CONSTRAINT [DF__TextMessa__Hours__691E3D2D] DEFAULT (0) FOR [HoursDelayed],
CONSTRAINT [DF__TextMessa__Creat__6A126166] DEFAULT (0) FOR [CreateDispatch],
CONSTRAINT [DF__TextMessa__IsArc__6B06859F] DEFAULT (0) FOR [IsArchived],
CONSTRAINT [DF__TextMessa__Exter__6BFAA9D8] DEFAULT (getdate()) FOR [ExternalDateReceived],
CONSTRAINT [DF__TextMessa__Syste__6CEECE11] DEFAULT (getdate()) FOR [SystemDateInserted],
CONSTRAINT [DF__TextMessa__Syste__6DE2F24A] DEFAULT (getdate()) FOR [SystemDateUpdated]
GO
CONSTRAINT [RefTextMessageTypes63] FOREIGN KEY
(
[TextMessageTypeID]
) REFERENCES [dbo].[TextMessageTypes] (
[TextMessageTypeID]
)
GO
DROP PROCEDURE TextMessagesCometTracker_Insert
GO
CREATE PROCEDURE TextMessagesCometTracker_Insert
@TEXTMESSAGETYPEID TINYINT, -- BEGIN TEXT MESSAGES
@PREFIX VARCHAR(50) = NULL,
@CONTROLNUMBER INT = NULL,
@SUFFIX VARCHAR(50) = NULL,
@TRUCKID VARCHAR(50) = NULL,
@DRIVERID VARCHAR(50) = NULL,
@EQUIPMENTNUMBER VARCHAR(50) = NULL,
@CHASSISNUMBER VARCHAR(50) = NULL,
@SEALNUMBER VARCHAR(50) = NULL,
@BILLOFLADINGNUMBER VARCHAR(50) = NULL,
@CONTAINERTYPE VARCHAR(50) = NULL,
@PIECES INT = NULL,
@WEIGHT DECIMAL(18, 2) = NULL,
@USER1 VARCHAR(50) = NULL,
@USER2 VARCHAR(50) = NULL,
@USER3 VARCHAR(50) = NULL,
@USER4 VARCHAR(50) = NULL,
@EMPTYGOOD BIT = NULL,
@LOTROW VARCHAR(50) = NULL,
@HOURSDELAYED DECIMAL(18, 2) = 0,
@USERCOMMENTS VARCHAR(255) = NULL,
@DISPATCHSTATUS VARCHAR(50) = NULL,
@CREATEDISPATCH BIT,
@EXTERNALSTATUS VARCHAR(50) = NULL,
@CURRENTCITY VARCHAR(255) = NULL,
@CURRENTSTATE VARCHAR(255) = NULL,
@MESSAGETEXT VARCHAR(4000) = NULL,
@ISARCHIVED BIT = 0,
@EXTERNALDATERECEIVED SMALLDATETIME, -- END TEXT MESSAGES
@COMETTRACKERORDERID VARCHAR(50) = NULL, -- BEGIN TEXT MESSAGES COMET TRACKER
@COMETTRACKERORDERNUM VARCHAR(50) = NULL,
@COMETTRACKERORDERUSERID VARCHAR(50) = NULL,
@COMETTRACKERORDERUSERNUM VARCHAR(50) = NULL,
@COMETTRACKERORDERUSERNAME VARCHAR(50) = NULL,
@COMETTRACKERORDERSTATUSID VARCHAR(50) = NULL,
@COMETTRACKERORDERSTATUS VARCHAR(50) = NULL,
@COMETTRACKERORDERGPSID VARCHAR(50) = NULL,
@COMETTRACKERORDERPHONEDATAID VARCHAR(50) = NULL -- END TEXT MESSAGES COMET TRACKER
AS
DECLARE @INTERNALSHORTID VARCHAR(50)
BEGIN
SET @INTERNALSHORTID = @DRIVERID
END
ELSE
BEGIN
SET @INTERNALSHORTID = @TRUCKID
END
BEGIN
INSERT INTO TEXTMESSAGES
(TEXTMESSAGETYPEID, PREFIX, CONTROLNUMBER, SUFFIX, INTERNALSHORTID, TRUCKID, DRIVERID, EQUIPMENTNUMBER, CHASSISNUMBER, SEALNUMBER, BILLOFLADINGNUMBER, CONTAINERTYPE,
PIECES, WEIGHT, USER1, USER2, USER3, USER4, EMPTYGOOD, LOTROW, HOURSDELAYED, USERCOMMENTS, DISPATCHSTATUS, CREATEDISPATCH, EXTERNALSTATUS,
CURRENTCITY, CURRENTSTATE, MESSAGETEXT, ISARCHIVED, EXTERNALDATERECEIVED, SYSTEMDATEINSERTED, SYSTEMDATEUPDATED)
VALUES
(@TEXTMESSAGETYPEID, @PREFIX, @CONTROLNUMBER, @SUFFIX, @INTERNALSHORTID, @TRUCKID, @DRIVERID, @EQUIPMENTNUMBER, @CHASSISNUMBER, @SEALNUMBER, @BILLOFLADINGNUMBER, @CONTAINERTYPE,
@PIECES, @WEIGHT, @USER1, @USER2, @USER3, @USER4, @EMPTYGOOD, @LOTROW, @HOURSDELAYED, @USERCOMMENTS, @DISPATCHSTATUS, @CREATEDISPATCH, @EXTERNALSTATUS,
@CURRENTCITY, @CURRENTSTATE, @MESSAGETEXT, @ISARCHIVED, @EXTERNALDATERECEIVED, GETDATE(), GETDATE())
SET @TEXTMESSAGEID = @@IDENTITY
INSERT INTO TEXTMESSAGESCOMETTRACKER
(TEXTMESSAGEID, ORDERID, ORDERNUM, ORDERUSERID, ORDERUSERNUM, ORDERUSERNAME,
ORDERSTATUSID, ORDERSTATUS, ORDERGPSID, ORDERPHONEDATAID, SYSTEMDATEINSERTED, SYSTEMDATEUPDATED)
VALUES
(@TEXTMESSAGEID, @COMETTRACKERORDERID, @COMETTRACKERORDERNUM, @COMETTRACKERORDERUSERID, @COMETTRACKERORDERUSERNUM, @COMETTRACKERORDERUSERNAME,
@COMETTRACKERORDERSTATUSID, @COMETTRACKERORDERSTATUS, @COMETTRACKERORDERGPSID, @COMETTRACKERORDERPHONEDATAID, GETDATE(), GETDATE())
END
ELSE
BEGIN
-- LOGIC IS CONFUSING BELOW BECAUSE AT ONE TIME SUPPORTED MULTIPLE EXISTING ORDER STATUSES AT ONE TIME
-- WHERE WE WOULD ARCHIVE THE PREVIOUS ONE, NOW WE ONLY SUPPORT ONE AND CONTINUALLY UPDATE THAT ONE
FROM TEXTMESSAGES TM (SERIALIZABLE)
INNER JOIN TEXTMESSAGESCOMETTRACKER TMC (SERIALIZABLE) ON TM.TEXTMESSAGEID = TMC.TEXTMESSAGEID
WHERE CAST(TMC.ORDERID AS INT) = CAST(@COMETTRACKERORDERID AS INT) AND CAST(TMC.ORDERSTATUSID AS INT) = CAST(@COMETTRACKERORDERSTATUSID AS INT)
ORDER BY TM.SYSTEMDATEINSERTED DESC
INTERNALSHORTID = @INTERNALSHORTID,
TRUCKID = @TRUCKID,
DRIVERID = @DRIVERID,
EQUIPMENTNUMBER = @EQUIPMENTNUMBER,
CHASSISNUMBER = @CHASSISNUMBER,
SEALNUMBER = @SEALNUMBER,
BILLOFLADINGNUMBER = @BILLOFLADINGNUMBER,
CONTAINERTYPE = @CONTAINERTYPE,
PIECES = @PIECES,
WEIGHT = @WEIGHT,
USER1 = @USER1,
USER2 = @USER2,
USER3 = @USER3,
USER4 = @USER4,
EMPTYGOOD = @EMPTYGOOD,
LOTROW = @LOTROW,
HOURSDELAYED = @HOURSDELAYED,
USERCOMMENTS = @USERCOMMENTS,
EXTERNALSTATUS = @EXTERNALSTATUS,
CURRENTCITY = @CURRENTCITY,
CURRENTSTATE = @CURRENTSTATE,
--MESSAGETEXT = @MESSAGETEXT,
--EXTERNALDATERECEIVED = @EXTERNALDATERECEIVED,
SYSTEMDATEUPDATED = GETDATE()
WHERE TEXTMESSAGEID = @TEXTMESSAGEID
MESSAGETEXT = @MESSAGETEXT,
EXTERNALDATERECEIVED = @EXTERNALDATERECEIVED
WHERE TEXTMESSAGEID = @TEXTMESSAGEID
ORDERID = @COMETTRACKERORDERID,
ORDERNUM = @COMETTRACKERORDERNUM,
ORDERUSERID = @COMETTRACKERORDERUSERID,
ORDERUSERNUM = @COMETTRACKERORDERUSERNUM,
ORDERUSERNAME = @COMETTRACKERORDERUSERNAME,
ORDERSTATUSID = @COMETTRACKERORDERSTATUSID,
ORDERSTATUS = @COMETTRACKERORDERSTATUS,
ORDERGPSID = @COMETTRACKERORDERGPSID,
ORDERPHONEDATAID = @COMETTRACKERORDERPHONEDATAID,
SYSTEMDATEUPDATED = GETDATE()
WHERE TEXTMESSAGEID = @TEXTMESSAGEID
END
BEGIN
SELECT TOP 1 @TEXTMESSAGEID = TM.TEXTMESSAGEID
FROM TEXTMESSAGES TM (SERIALIZABLE)
INNER JOIN TEXTMESSAGESCOMETTRACKER TMC (SERIALIZABLE) ON TM.TEXTMESSAGEID = TMC.TEXTMESSAGEID
WHERE CAST(TMC.ORDERID AS INT) = CAST(@COMETTRACKERORDERID AS INT) AND CAST(TMC.ORDERSTATUSID AS INT) = CAST(@COMETTRACKERORDERSTATUSID AS INT)
ORDER BY TM.SYSTEMDATEINSERTED DESC
END