【发布时间】:2015-10-29 08:51:37
【问题描述】:
我第一次在这里创建存储过程,请放轻松。我试图 SELECT 我的数据从表 1 (EmpTBL),然后 INSERT 到表 2 (EventTBL)
我认为罪魁祸首是这里的这条线:
@Ename varchar(250) = NULL,
@Edate varchar(250) = NULL,
我认为我的逻辑是正确的,我只是不知道为什么它不起作用。
不知道下一步该做什么。
ALTER PROCEDURE spBdayEmp
(@Ename varchar(250) = NUll,
@Edate varchar(250)= NUll,
@Etype varchar(250) = 'Bday')
AS
INSERT INTO EventTBL(EventName, EventDate, EventType)
VALUES (@Ename, @Edate, @Etype)
SELECT
@Ename = (Ename + ' ' + Lname),
@Edate = DATEADD(YY, DATEPART(YYYY, GETDATE()) - DATEPART(YYYY,dateOfBirth), dateOfBirth)
FROM
EmpTBL
WHERE
DATEADD( Year, DATEPART( Year, GETDATE()) - DATEPART( Year, DateOfBirth), DateOfBirth) BETWEEN CONVERT( DATE, GETDATE()) AND CONVERT( DATE, GETDATE() + 30);
我将如何获得值? @Ename,@Edate?
我希望 SELECT 查询“Ename + ' ' + Lname”的结果等于“@Ename”和“ DATEADD(YY, DATEPART(YYYY, GETDATE()) - DATEPART(YYYY,dateOfBirth), dateOfBirth ), 等于“@Edate”?
【问题讨论】:
-
这适用于哪个 RDBMS?请添加标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或其他完全不同的东西。 -
还有:你如何调用这个存储过程?您将哪些值传递给参数?
-
我只是先在 sql server management studio 中对其进行测试,看看它是否有效,然后在我的 asp.net VB 项目中调用它
标签: sql sql-server stored-procedures insert-into select-into