我遇到的问题是:
我已经在我的数据库中写了几个SQL存储过程供我的应用程序使用。我测试了Toad中的程序,他们正确地撤回了数据。但是,当我尝试在Visual Studio中调用存储过程时,它们运行时没有错误,除了它们只返回主键列。
例如:
CREATE PROCEDURE [schemaName].GetSiteByName @siteName varchar(10)
AS
BEGIN
SELECT SiteID, SiteName, CreatedBy, CreateDate
FROM SitesTable
WHERE SiteName LIKE '%' + @siteName + '%'
END
在Toad中运行此过程时我得到的数据在搜索“hall”时显示如下:
SiteID SiteName CreatedBy CreateDate
------------------------------------------------------
1 hall01 Developer 2014-08-09
2 hall02 Developer 2014-08-10
13 hall03 Developer 2014-08-10
14 hall04 Developer 2014-08-10
15 hall05 Developer 2014-08-12
在Visual Studio中,这就是它返回的全部内容:
SiteID
------------------------------------------------------
1
2
13
14
15
我已经检查过以确保应用程序/用户有权提取数据(此时我已经以db所有者身份登录)。我还尝试了简单的select语句,它从表中提取所有数据并出现同样的问题。最后,我使用Visual Studio编写了相同的查询,并且在包含所有列的情况下将数据拉回来很好;当查询嵌入存储过程时,它似乎只会丢失列。