У меня есть таблица с именем Table1
, которая содержит ID
и 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