当前位置: 代码迷 >> Sql Server >> SQL 默认值不起作用?该如何解决
  详细解决方案

SQL 默认值不起作用?该如何解决

热度:16   发布时间:2016-04-24 21:58:35.0
SQL 默认值不起作用?
本帖最后由 feiniaoflyer 于 2012-11-29 05:46:30 编辑
create table [dbo].[T_Message]
    (
        [MaskId]         uniqueidentifier default newid() not null,
        [ProductMaskId]  uniqueidentifier,
        [Name]           nvarchar(50),
        [Email]          nvarchar(50),
        [Theme]          nvarchar(255),        
        [Content]        nvarchar(4000),
        [AddTime]        datetime default getdate()    
    )

SqlParameter[] paramArray ={
                                       new SqlParameter("@ProductMaskId",P_ID),
                                       new SqlParameter("@Name",TextBox1.Text),
                                       new SqlParameter("@Email",TextBox2.Text),
                                       new SqlParameter("@Theme",TextBox3.Text),
                                       new SqlParameter("@Content",TextBox4.Text),
                                       new SqlParameter("@AddTime",DateTime.UtcNow.ToString())
                                  };

DB.ExecuteCommand("insert into T_Message([ProductMaskId],[Name],[Email],[Theme],[Content],[AddTime]) values(@ProductMaskId,@Name,@Email,@Theme,@Content,@AddTime);", paramArray)

报错:
不能将值 NULL 插入列 'MaskId',表 'dbo.T_Message';列不允许有空值。INSERT 失败。
语句已终止。


ALTER TABLE T_Message
ALTER COLUMN MaskId uniqueidentifier NULL
此时能Insert但MaskId是null值

ALTER TABLE T_Message
ALTER COLUMN MaskId set default newid()
关键字 'set' 附近有语法错误。

求教为什么不能插入数据?
  相关解决方案