存储过程CREATE PROC spBorrowBookInsertdeclare @BorrowDate DATETIME
SET @BorrowDate =GETDATE() ;
declare @ReturnDate DATETIME
SET @ReturnDate =DATEADD(MM,1,GETDATE());@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME = @BorrowDate ,
@pReturnDate DATETIME = @ReturnDate ,
@pFactReturnDate DATETIME ASBEGIN
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
@pBorrowDate ,
@pReturnDate ,
@pFactReturnDate
) SET @pBorrowBookID = IDENT_CURRENT('BorrowBook');
END----------------------------------------------------
GOCREATE PROC spBorrowBookUpdateByIDdeclare @BorrowDate DATETIME
SET @BorrowDate=GETDATE();
DECLARE @ReturnDate DATETIME
SET @ReturnDate=DATEADD(MM,1,GETDATE());@pBorrowBookID INT ,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME =@BorrowDate,
@pReturnDate DATETIME =@ReturnDate,
@pFactReturnDate DATETIME ASBEGIN
UPDATE BorrowBook
SET
ReaderID = @pReaderID,
BookID = @pBookID ,
BorrowDate = @pBorrowDate ,
ReturnDate = @pReturnDate,
FactReturnDate= @pFactReturnDate
WHERE BorrowBookID =@pBorrowBookID END
----------------------------------------------------错误消息 156,级别 15,状态 1,过程 spBorrowBookInsert,第 6 行
关键字 'declare' 附近有语法错误。
消息 102,级别 15,状态 1,过程 spBorrowBookInsert,第 11 行
'@pBorrowBookID' 附近有语法错误。
消息 137,级别 15,状态 2,过程 spBorrowBookInsert,第 31 行
必须声明标量变量 "@pReaderID"。
消息 137,级别 15,状态 1,过程 spBorrowBookInsert,第 38 行
必须声明标量变量 "@pBorrowBookID"。
消息 156,级别 15,状态 1,过程 spBorrowBookUpdateByID,第 4 行
关键字 'declare' 附近有语法错误。
消息 102,级别 15,状态 1,过程 spBorrowBookUpdateByID,第 9 行
'@pBorrowBookID' 附近有语法错误。
消息 137,级别 15,状态 2,过程 spBorrowBookUpdateByID,第 21 行
必须声明标量变量 "@pReaderID"。本意是想在插入和更新的时候 有一个默认的时间值 就定义了两个变量 去的系统时间 在赋值给字段变量但是总提示有语法错误 不知道问题出在哪里 希望各位大哥给指点指点 错在哪里 应该怎么写 谢谢
--在这不能这样定义 语法都不对
--declare @BorrowDate DATETIME
--SET @BorrowDate =GETDATE() ;
--declare @ReturnDate DATETIME
--SET @ReturnDate =DATEADD(MM,1,GETDATE());@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME = @BorrowDate ,
@pReturnDate DATETIME = @ReturnDate ,
@pFactReturnDate DATETIME ASBEGIN
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
@pBorrowDate ,
@pReturnDate ,
@pFactReturnDate
) SET @pBorrowBookID = IDENT_CURRENT('BorrowBook');
END--执行的时候直接把GETDATE() 和DATEADD(MM,1,GETDATE())当参数传进去。
--在这不能这样定义 语法都不对
--declare @BorrowDate DATETIME
--SET @BorrowDate =GETDATE() ;
--declare @ReturnDate DATETIME
--SET @ReturnDate =DATEADD(MM,1,GETDATE());@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME ,
@pReturnDate DATETIME ,
@pFactReturnDate DATETIME ASBEGIN
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
@pBorrowDate ,
@pReturnDate ,
@pFactReturnDate
) SET @pBorrowBookID = IDENT_CURRENT('BorrowBook');
END--执行的时候直接把GETDATE() 和DATEADD(MM,1,GETDATE())当参数传进去。
CREATE PROC spBorrowBookInsert
--在这不能这样定义 语法都不对
--declare @BorrowDate DATETIME
--SET @BorrowDate =GETDATE() ;
--declare @ReturnDate DATETIME
--SET @ReturnDate =DATEADD(MM,1,GETDATE());@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME=GETDATE(),
@pReturnDate DATETIME=DATEADD(MM,1,GETDATE()),
@pFactReturnDate DATETIME ASBEGIN
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
@pBorrowDate ,
@pReturnDate ,
@pFactReturnDate
) SET @pBorrowBookID = IDENT_CURRENT('BorrowBook');
END--执行的时候直接把GETDATE() 和DATEADD(MM,1,GETDATE())当参数传进去。
(
@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT , @pFactReturnDate DATETIME
)
AS
DECLARE @pBorrowDate DATETIME ,@pReturnDate DATETIME
declare @BorrowDate DATETIME
SET @BorrowDate =GETDATE() ;
declare @ReturnDate DATETIME
SET @ReturnDate =DATEADD(MM,1,GETDATE());
SELECT @pBorrowDate=@BorrowDate,@pReturnDate=@ReturnDateBEGIN
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
@pBorrowDate ,
@pReturnDate ,
@pFactReturnDate
) SET @pBorrowBookID = IDENT_CURRENT('BorrowBook');
END----------------------------------------------------
GOCREATE PROC spBorrowBookUpdateByID
(
@pBorrowBookID INT ,
@pReaderID INT ,
@pBookID INT ,
@pFactReturnDate DATETIME
)
ASDECLARE @pBorrowDate DATETIME,@pReturnDate DATETIMEdeclare @BorrowDate DATETIME
SET @BorrowDate=GETDATE();
DECLARE @ReturnDate DATETIME
SET @ReturnDate=DATEADD(MM,1,GETDATE());SELECT @pBorrowDate=@BorrowDate,@pReturnDate=@ReturnDateBEGIN
UPDATE BorrowBook
SET
ReaderID = @pReaderID,
BookID = @pBookID ,
BorrowDate = @pBorrowDate ,
ReturnDate = @pReturnDate,
FactReturnDate= @pFactReturnDate
WHERE BorrowBookID =@pBorrowBookID END
只可這樣用
CREATE PROC spBorrowBookInsert
@pBorrowBookID INT OUTPUT,
@pReaderID INT ,
@pBookID INT ,
@pBorrowDate DATETIME default getdate() ,
@pReturnDate DATETIME default DATEADD(MM,1,GETDATE()),
@pFactReturnDate DATETIME AS
INSERT INTO BorrowBook
(
ReaderID ,
BookID ,
BorrowDate ,
ReturnDate ,
FactReturnDate
)
VALUES
(
@pReaderID ,
@pBookID ,
GETDATE() ,
DATEADD(MM,1,GETDATE()) ,
@pFactReturnDate
)
直接在INSERT语句中使用日期函数,没必要再定义这2个变量了。
如果你是从UI或其他地方传进来两个日期参数,那需要先定义2个变量并赋值,再INSERT。