Based on a guess that ProviderBibDateAdded
is typed as integer and you are tying to stuff a datetime into it, Try changing your update statement to this:
UPDATE
SET ProviderCustNum = pt.ProviderCustNum,
ProviderDivID = pt.ProviderDivID,
ProviderBibDateAdded = Cast(pt.ProviderBibDateAdded as Integer),
ProviderQtyOwned = pt.ProviderQtyOwned
and your insert statement to this:
INSERT (KTSID, FLRID, SiteShelfID, SiteCustNum, SiteDivID,
SiteBibDateAdded, SiteQtyOwned, ProviderShelfID,
ProviderCustNum, ProviderDivID, ProviderBibDateAdded,
ProviderQtyOwned)
VALUES (pt.KTSID, pt.FLRID, pt.SiteShelfID, pt.SiteCustNum,
pt.SiteDivID, NULL, NULL, pt.ProviderShelfID,
pt.ProviderCustNum, pt.ProviderDivID,
cast(pt.ProviderBibDateAdded as Integer),
pt.ProviderQtyOwned)
If this is indeed the issue, then you might instead create your temp table with explicit data types to start off with, before you insert anything into it.
Declare @TitleData (
KTSID integer not null,
FLRID integer not null,
SiteShelfID integer not null,
SiteCustNum varChar(??),
SiteDivID integer not null,
SiteBibDateAdded Datetime not null,
SiteQtyOwned smallInt,
ProviderShelfID integer not null,
ProviderCustNum varChar(??) Null,
ProviderDivID Integer null,
ProviderBibDateAdded Datetime null,
ProviderQtyOwned null)
Insert @TitleData (KTSID, FLRID, SiteShelfID,
SiteCustNum, SiteDivID, SiteBibDateAdded,
SiteQtyOwned, ProviderShelfID)
SELECT BookID, ResourceID, ls.ID,
ls.CustomerNumber, ls.DivisionID,
st.DateCreated, st.TotalCopies,
ls.ParentLibraryShelfID
From dapadmin.ShelfTitle st
JOIN dapadmin.LibraryShelf ls
ON st.LibraryShelfID = ls.ID
JOIN #TitlesToInclude tti
ON st.ID = tti.ShelfTitleId