原文标题:为什么在 T-SQL 的比较中使用像“{Bad”这样的值会影响结果?
我创建了一个存储过程来处理大表的分页。该过程的重要部分如下:
DECLARE @first_id NVARCHAR(250);
DECLARE @first_parent NVARCHAR(250);
SET @skip = @skip + 1
SELECT TOP(@skip) @first_id = id,
@first_parent = parent
FROM [dbo].[DATA]
WHERE RowSet = @rowset
AND FieldID = @field_id
AND ( parent = @parent
OR @parent IS NULL )
ORDER BY parent,
id;
SELECT TOP(@max) id,
[Description],
Closed,
Hold,
Access,
[Type],
parent
FROM [dbo].[DATA]
WHERE parent >= @first_parent
AND id >= @first_id
AND RowSet = @rowset
AND FieldID = @field_id
AND ( parent = @parent
OR @parent IS NULL )
ORDER BY parent,
id
它工作正常,除非@first_parent 是'{Problem',当这种情况发生时结果中的一半行被跳过。是'{'吗?这是在 SQL Server 2008 R2 上运行的。