2015-04-02 6 views
-1
CREATE PROCEDURE usp_InsertUserDetails 
    @FirstName nvarchar(20), 
    @MiddleName nvarchar(20), 
    @LastName nvarchar(30), 
    @FullName nvarchar(50), 
    @PhoneNo nvarchar(15), 
    @FaxNo nvarchar(15), 
    @EmployeeId nvarchar(64), 
    @EmailAddress nvarchar(256), 
    @SSOID nvarchar(76), 
    @IsSFDC bit, 
    @IsActive bit, 
    @ManagerId int, 
    @LastLoginDateTime datetime, 
    @CreatedBy int, 
    @CreatedDate datetime, 
    @UpdatedBy int, 
    @UpdatedDate datetime, 
    @IsDeleted bit 
AS 
BEGIN 
    INSERT INTO UserDetail(FirstName, MiddleName, LastName, FullName, PhoneNo, FaxNo, EmployeeId, EmailAddress, SSOID, IsSFDC, IsActive, ManagerId, LastLoginDateTime, CreatedBy, CreatedDate, UpdatedBy, UpdatedDate, IsDeleted) 
    VALUES (@FirstName, @MiddleName, @LastName, @FullName, @PhoneNo, @FaxNo, @EmployeeId, @EmailAddress, @SSOID, 0, 1, 2, GETDATE(), 1, GETDATE(), 1, GETDATE(), 0) 
END 

Выполнение так:Хранимая процедура дает ошибку при выполнении

exec usp_InsertUserDetails 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 0, 1, 1, GETDATE(), 1, GetDate(), 1, GETDATE(), 0 

Я получаю сообщение об ошибке:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'.

ответ

-1

попробовать это,

DECLARE @tmp DATETIME 
SET @tmp = GETDATE() 
exec usp_InsertUserDetails 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 0, 1, 1,@tmp , 1, @tmp, 1, @tmp, 0 
1

Попробуйте использовать переменную для хранения текущей даты/времени:

declare @now datetime = getdate(); 

exec usp_InsertUserDetails 'test', 'test', 'test', 'test', 'test', 'test', 
     'test', 'test', 'test', 0, 1, 1, 
     @now, 1, @now, 1, @now, 0; 
1

Вы не можете вызвать хранимую процедуру с параметром er, который является вызовом функции, getdate() в этом случае. Вместо этого назначьте переменную.

Смежные вопросы