我有一个名为Table1
的表,它包含一个ID
和TimeStamp
。SQL Server 2000中的TimeStamp
表结构
ID TimeStamp
1 0x0000000000047509
但是,当我比较这些字段的组合,它总是显示虚假的。这是什么原因?
我的查询是:
DECLARE @ID int
DECLARE @TimeStamp timestamp
SET @ID = 1
SET @TimeStamp = 0x0000000000047509
If EXISTS(SELECT 1 FROM Table1 WHERE ID = @ID AND TimeStamP = @TimeStamp)
BEGIN
SELECT 1 AS RetVal
END
ELSE
BEGIN
SELECT -1 AS RetVal
END
我的存储过程如下:
CREATE PROCEDURE [dbo].[Check] (
@XMLDoc ntext
)AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @ID bigint
DECLARE @TimeStamp timestamp
DECLARE @hDoc int
EXEC sp_xml_PrepareDocument @hDoc OUT, @XMLDoc
SELECT @ID = ID
,@TimeStamp = [TimeStamp]
FROM OPENXML (@hdoc,'/XML')
WITH ( ID bigint 'ID'
,[TimeStamp] timestamp 'TStamp')
IF @@ERROR<>0
BEGIN
EXEC sp_xml_RemoveDocument @hDoc
SELECT -620 AS RetVal
RETURN
END
IF NOT EXISTS(SELECT 1 FROM Table1 WHERE ID= @ID AND Timestamp = @TimeStamp )
BEGIN
SELECT -1 AS RetVal
END
ELSE
BEGIN
SELECT 1 AS RetVal
END
END
它不能在SQL 2000.Have为我工作ü在2000年选中此? – Adu 2010-10-13 06:22:34
@Adu - 是的,这在SQL 2000中也适用于我。分别是ID和Timestamp“int”和“timestamp”的数据类型? – LittleBobbyTables 2010-10-13 12:57:42
ID的数据类型是bigint – Adu 2010-10-13 13:23:20