我有以下存储过程,当我尝试功能导入时,我说我的存储过程不返回任何列.我错过了什么?有什么建议?
Proc:
ALTER PROCEDURE [healthc].[ev_kc_Products_Search]
(
@SearchString VARCHAR(1000)
)
AS
SET NOCOUNT ON
DECLARE @SQL VARCHAR(max),
@SQL1 VARCHAR(max),
@Tag VARCHAR(5)
CREATE TABLE #T
( ID INT,
VendorName VARCHAR(255),
ItemName VARCHAR(255),
Type VARCHAR(2),
Sequence TINYINT
)
SET @SQL = '
INSERT #T
SELECT VendorID ID,
Name VendorName,
NULL ItemName,
''V'' Type,
0 Sequence
FROM tblVendors
WHERE '+REPLACE(@SQL1,@Tag,'Name')+'
UNION ALL
BLAH BLAH BLAH'
EXEC(@SQL)
SELECT ID, VendorName, ItemName, Type FROM #T
Run Code Online (Sandbox Code Playgroud) 在我的SP中,我混合了静态SQL和动态SQL:
declare @result table
(
RowNum bigint,
Id_and_Title varchar(max),
DaysLeft int,
cat_id int
);
Run Code Online (Sandbox Code Playgroud)
然后,在动态SQL中,我将结果插入到该表中:
DECLARE @TSQL NVARCHAR(max);
SET @TSQL = ......
Run Code Online (Sandbox Code Playgroud)
(我使用print @TSQL所以我确定查询没问题)
insert into @result
EXECUTE sp_executesql @TSQL
select * from @result
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在VS 2010 Ultimate中导入taht SP时,我会看到标题中提到的消息.是什么导致的?很多次我发生了这个错误,但我仍然不知道是什么原因引起的
我正在使用Entity Framework数据库第一种方法从Webforms到MVC应用程序进行项目转换,并准备好数据库以及所有存储过程.
我成功创建了一个.edmx文件,并且能够使用我的存储过程,并且在执行任何插入或更新操作时它工作得很好.但是当我在我的一个存储过程中使用select查询时出现了真正的问题.
例如,有一个Employee表格包含以下列:
EmpId, FirstName, LastName, Age, Salary
Run Code Online (Sandbox Code Playgroud)
我有一个存储过程GetAllEmpDetails有以下选择查询.
Select
EmpId, (FirstName + ' ' + LastName) as FullName, Salary
from
Employee
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将此存储过程的结果与Employee具有5个属性的类绑定到表结构时,我得到一个错误,即该Age属性的值是预期的,但它在结果集中不可用.
我知道也没有FullName属性,所以我的问题是如何用生成的模型类解决这个问题(如本例所示Employee),以便它可以解决这些动态?