ALTER PROCEDURE [dbo].[UP_LoginInfo_ADD]
@ID int output,
@Name varchar(50),
@Pass varchar(50),
@Sex char(10),
@TrueName varchar(50),
@PassQuestion varchar(100),
@PassSolution varchar(50),
@Phone varchar(50),
@Email varchar(100),
@Address varchar(50) AS 
INSERT INTO [LoginInfo](
[Name],[Pass],[Sex],[TrueName],[PassQuestion],[PassSolution],[Phone],[Email],[Address]
)VALUES(
@Name,@Pass,@Sex,@TrueName,@PassQuestion,@PassSolution,@Phone,@Email,@Address
)
SET @ID = @@IDENTITY
一个简单的插入,表里都是允许为空的,但是exec  只输入name,和pass的话会报错说缺少参数sex,后面的一系列参数...
存储过程一定要全部输入吗

解决方案 »

  1.   

    --设置一些默认值试试
    ALTER PROCEDURE [dbo].[UP_LoginInfo_ADD]
    @ID int output,
    @Name varchar(50),
    @Pass varchar(50),
    @Sex char(10)='男',
    @TrueName varchar(50)='',
    @PassQuestion varchar(100)='',
    @PassSolution varchar(50)='',
    @Phone varchar(50)='',
    @Email varchar(100)='',
    @Address varchar(50)='' AS 
        INSERT INTO [LoginInfo](
        [Name],[Pass],[Sex],[TrueName],[PassQuestion],[PassSolution],[Phone],[Email],[Address]
        )VALUES(
        @Name,@Pass,@Sex,@TrueName,@PassQuestion,@PassSolution,@Phone,@Email,@Address
        )
        SET @ID = @@IDENTITY