【发布时间】:2014-10-04 18:53:53
【问题描述】:
我正在尝试使用usp_TimesheetsAuditsLoadAllbyId 42747, NULL 命令调用此过程。
但我总是出错
消息 8114,级别 16,状态 5,过程 usp_TimesheetsAuditsLoadAllById,第 9 行
将数据类型 varchar 转换为 bigint 时出错。
TimesheetsAudits 表的ID 是bigint 类型。我尝试了几种类型的转换和强制转换,但我现在真的被卡住了。
希望有人可以提供帮助。谢谢
ALTER PROCEDURE [dbo].[usp_TimesheetsAuditsLoadAllById]
(
@Id INT,
@StartDate DATETIME
)
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 51 *
FROM
(SELECT TOP 51
ID,
Type,
ReferrerId,
CAST(Description AS VARCHAR(MAX)) AS Description,
OnBehalfOf,
Creator,
DateCreated
FROM
TimesheetsAudits
WHERE
(ReferrerID = @Id) AND
(@StartDate IS NULL OR DateCreated < @StartDate)
ORDER BY
DateCreated DESC
UNION
SELECT TOP 51
tia.ID,
tia.Type,
tia.ReferrerId,
'[Day: ' + CAST(DayNr AS VARCHAR(5)) + '] ' + CAST(tia.Description AS VARCHAR(MAX)) AS Description,
tia.OnBehalfOf,
tia.Creator,
tia.DateCreated
FROM
TimesheetItemsAudits tia
INNER JOIN
TimesheetItems ti ON tia.ReferrerId = ti.ID
WHERE
(ti.TimesheetID = @Id) AND
(@StartDate IS NULL OR tia.DateCreated < @StartDate)
ORDER BY
tia.DateCreated DESC) t
ORDER BY
t.DateCreated DESC
END
来自 cmets 的表的表定义:
CREATE TABLE [dbo].[TimesheetsAudits](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Type] [tinyint] NOT NULL,
[ReferrerId] [varchar](15) NOT NULL,
[Description] [text] NULL,
[OnBehalfOf] [varchar](10) NULL,
[Creator] [varchar](10) NOT NULL,
[DateCreated] [datetime] NOT NULL
)
CREATE TABLE [dbo].[TimesheetItemsAudits](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Type] [tinyint] NOT NULL,
[ReferrerId] [varchar](15) NOT NULL,
[Description] [text] NULL,
[OnBehalfOf] [varchar](10) NULL,
[Creator] [varchar](10) NOT NULL,
[DateCreated] [datetime] NOT NULL
)
【问题讨论】:
-
TimesheetAudits 的表结构?
-
referrerId 是什么类型的描述?
-
TimesheetItemsAudits 的表格描述也会有所帮助。两个表的 ID 都是 bigint 吗?
-
CREATE TABLE [dbo].[TimesheetsAudits]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Type] [tinyint] NOT NULL, [ReferrerId] [varchar](15 ) NOT NULL, [Description] [text] NULL, [OnBehalfOf] [varchar](10) NULL, [Creator] [varchar](10) NOT NULL, [DateCreated] [datetime] NOT NULL,
-
CREATE TABLE [dbo].[TimesheetItemsAudits]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Type] [tinyint] NOT NULL, [ReferrerId] [varchar](15 ) NOT NULL, [Description] [text] NULL, [OnBehalfOf] [varchar](10) NULL, [Creator] [varchar](10) NOT NULL, [DateCreated] [datetime] NOT NULL,
标签: sql sql-server tsql bigint