我正在尝试为原型创建查询但似乎无法使其工作。我不知道。使用Express Profiler捕获第一个查询。第二个查询只是一个副本,并从第一个查询粘贴。唯一的区别是在第二个查询中我直接从数据库中的行复制/粘贴了param值。为什么这两个查询会返回不同的结果?
我确实在发布之前更改了查询,因此请忽略我可能错过的任何小错误。我这样做是为了删除客户特定的细节。
exec sp_executesql N'SELECT DISTINCT COUNT(*)
FROM [Test_Import]
WHERE CONCAT(Name, '' -- '', City, '', '', State, '', '', Zip) =
@Info', N'@Info nvarchar(49)',
@Info=N'LLC -- Morganton, NC, 28655'
go
exec sp_executesql N'SELECT DISTINCT COUNT(*)
FROM [Test_Import]
WHERE CONCAT(Name, '' -- '', City, '', '', State, '', '', Zip) =
@Info', N'@Info nvarchar(49)',
@Info=N'LLC -- Morganton, NC, 28655'
go
插入值
INSERT INTO [dbo].[Test_Import] ([Name], [City], [State], [Zip])
VALUES ('LLC', 'Morganton', 'NC', '28655')
创建表
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Test_Import]
(
[Name] [varchar](200) NULL,
[City] [varchar](200) NULL,
[State] [varchar](200) NULL,
[Zip] [varchar](200) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
答案 0 :(得分:1)
检查参数下方是否有任何隐藏字符
你可以通过将这个sql复制并粘贴到Notepad ++中来实现
从记事本++菜单转到视图 - >显示符号 - >显示所有字符
这将帮助您找出差异