【发布时间】:2013-07-23 06:18:21
【问题描述】:
我有一个这样的查询:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[User_SelectByLoginID]
@LoginID nvarChar(4)
as
SELECT dbo.[User].*
FROM dbo.[User]
WHERE LoginID=@LoginID
以及User表中的数据:
LoginID ='1111' | Name ='abc' | Email = 'abc@yahoo.com'
当我执行这个查询并输入“1111111”时,它返回了记录:
1111 abc abc@yahoo.com
当我输入错误的 LoginID 并仍然得到数据时,这很荒谬。
P/S:我设置了 LoginID nvarchar(4)
谁能帮我解释一下?以及如何使它正确?
【问题讨论】:
-
您是否只是想对 SQL Server 静默截断过长参数这一事实进行吐槽/发泄?还是您有实际问题?
-
您可能想查看此answer 以获取连接项目的链接,这些项目要求 Microsoft 提供(选择加入)更严格的设置。
-
ID错了,但存储过程错了,所以它们在一起是对的!
-
@Damien_The_Unbeliever 这是我第一次遇到这个问题,所以我只想问清楚。不要那样消极地思考。谢谢!
标签: sql-server