ここでストアド プロシージャを作成するのは初めてです。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," equals "@Ename" および " DATEADD(YY, DATEPART(YYYY, GETDATE()) - DATEPART(YYYY,dateOfBirth), dateOfBirth)" の結果が必要です。 "@Edate" と同じですか?