2012-08-30 36 views
0

我想创建一个存储过程从我的数据库表中检索行...但它看起来像我在输入查询时丢失了一些东西。SQL Server存储过程从表中获取行

这里是我的存储过程:

CREATE PROCEDURE [dbo].[p_GetLeaveRecord_LMS] 
    -- Add the parameters for the stored procedure here 
    @LeaveType varchar(50), 
    @IdEmployee int, 
    @DateFrom date, 
    @DateTo date, 
    @Reason nvarchar(MAX) 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    SElECT * FROM cor_leave 
    (
    id_leave_type, 
    id_employee, 
    dt_from, 
    dt_to, 
    txt_reason 
    ) 
    Values 
    (
    @LeaveType, 
    @IdEmployee, 
    @DateFrom, 
    @DateTo, 
    @Reason 
    )  
END 

如果谁能给我更好的答案,使程序正确。

我是数据库的初学者。

谢谢

+0

参数必须用括号括起来。另外,你想要什么程序返回? – kyooryu

+0

您的SELECT查询语法不正确。 SELECT不是以这种方式写的。看看这里的SELECT语法http://msdn.microsoft.com/en-us/library/ms189499.aspx – InSane

回答

2
SELECT @LeaveType=id_leave_type, @IdEmployee`=id_employee,@DateFrom=dt_from,@DateTo=dt_to,@Reason=txt_reason FROM cor_leave 
+0

你好t-clausen,你能解释我有什么错误做了什么? –

2

您的select语句不是有效的SQL。它看起来更像是一个修改的INSERT语句。

它应该是:

SELECT 
    id_leave_type, 
    id_employee, 
    dt_from, 
    dt_to, 
    txt_reason 
FROM cor_leave 
+0

得到它谢谢:) –

+0

@AmmarAsjad - 你建议(使用'*'没有得到一列_selection_ ,但所有这些,它也被认为是一种不好的做法,有几个原因 – Oded

+0

@marc_s - 谢谢... – Oded