我有一个这样的存储过程:
ALTER PROCEDURE [dbo].[spBlogPostGet]
@Id int NULL,
@ParentBlogTitle varchar(150) NULL
AS
IF @Id > 0
BEGIN
SELECT *
FROM tblBlogPosts
WHERE Id = @Id;
END
ELSE IF @ParentBlogTitle IS NOT NULL
BEGIN
SELECT *
FROM tblBlogPosts
WHERE ParentBlogTitle = @ParentBlogTitle;
END
ELSE
BEGIN
SELECT *
FROM tblBlogPosts
ORDER BY(DateCreated);
END
我试图测试:
use MyDb
exec spBlogPostGet
@Id = 0, @ParentBlogTitle = 'some dude''s Blog';
我有一篇博客文章,上面有父母博客标题" Some Dude's Blog"但我的存储过程没有检索到这一行。如果我尝试检索其名称中没有撇号的行,则会选择指定的行。
我似乎无法找到解决方案 - 我对SQL有一个非常基本的了解,并希望得到一些指导。
谢谢
答案 0 :(得分:1)
... aaaaa我是个白痴。我通过ajax请求传递我的值,并从下拉列表中获取文本而不是选定的值。我的sql表显示正确的值,但是当单步执行我的代码时,我实际上是传递了下拉列表的全部内容,所以难怪我的查询没有返回任何内容。