问题

向已有表增加字段

执行下面sql,sql执行增加两个字段分别:

  1. articleTitle 正标题 [nvarchar](200)
  2. articleSubTitle 副标题 [nvarchar](200)
USE [tg_thirdparty]
GO /****** Object: Table [dbo].[WX_Activity] Script Date: 10/31/2018 10:54:46 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO SET ANSI_PADDING ON
GO IF NOT EXISTS ( SELECT 1
FROM SYSOBJECTS T1
INNER JOIN SYSCOLUMNS T2 ON T1.ID = T2.ID
WHERE T1.NAME = 'WX_Activity'
AND T2.NAME = 'articleTitle' )
BEGIN ALTER TABLE [dbo].[WX_Activity] ADD [articleTitle] [nvarchar](200) NOT NULL
--ALTER TABLE [dbo].[WX_Activity] ADD CONSTRAINT [DF_WX_Activity_articleTitle] DEFAULT ('') FOR [articleTitle]
--ALTER TABLE [dbo].[WX_Activity] ALTER COLUMN [articleTitle] [nvarchar](200) NOT NULL EXEC sys.sp_addextendedproperty @name = N'MS_Description',
@value = N'正标题', @level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'WX_Activity',
@level2type = N'COLUMN', @level2name = N'articleTitle' END GO IF NOT EXISTS ( SELECT 1
FROM SYSOBJECTS T1
INNER JOIN SYSCOLUMNS T2 ON T1.ID = T2.ID
WHERE T1.NAME = 'WX_Activity'
AND T2.NAME = 'articleSubTitle' )
BEGIN ALTER TABLE [dbo].[WX_Activity] ADD [articleSubTitle] [nvarchar](200) NOT NULL
--ALTER TABLE [dbo].[WX_Activity] ADD CONSTRAINT [DF_WX_Activity_articleSubTitle] DEFAULT ('') FOR [articleSubTitle]
--ALTER TABLE [dbo].[WX_Activity] ALTER COLUMN [articleSubTitle] [nvarchar](200) NOT NULL EXEC sys.sp_addextendedproperty @name = N'MS_Description',
@value = N'副标题', @level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'WX_Activity',
@level2type = N'COLUMN', @level2name = N'articleSubTitle' END GO

提示错误

消息 4901,级别 16,状态 1,第 10 行
ALTER TABLE 只允许添加满足下述条件的列: 列可以包含 Null 值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"articleTitle"添加到非空表"WX_Activity"中,因为它不满足上述条件。
消息 4901,级别 16,状态 1,第 9 行
ALTER TABLE 只允许添加满足下述条件的列: 列可以包含 Null 值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"articleSubTitle"添加到非空表"WX_Activity"中,因为它不满足上述条件。

解决方法:

表中已经有数据了,不设置默认值,有要求字段不能为NULL,矛盾了!!

所以先指定默认值,插入字段时,加上默认值 DEFAULT ''

USE [tg_thirdparty]
GO /****** Object: Table [dbo].[WX_Activity] Script Date: 10/31/2018 10:54:46 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO SET ANSI_PADDING ON
GO IF NOT EXISTS ( SELECT 1
FROM SYSOBJECTS T1
INNER JOIN SYSCOLUMNS T2 ON T1.ID = T2.ID
WHERE T1.NAME = 'WX_Activity'
AND T2.NAME = 'articleTitle' )
BEGIN ALTER TABLE [dbo].[WX_Activity] ADD [articleTitle] [nvarchar](200) NOT NULL DEFAULT ''
--ALTER TABLE [dbo].[WX_Activity] ADD CONSTRAINT [DF_WX_Activity_articleTitle] DEFAULT ('') FOR [articleTitle]
--ALTER TABLE [dbo].[WX_Activity] ALTER COLUMN [articleTitle] [nvarchar](200) NOT NULL EXEC sys.sp_addextendedproperty @name = N'MS_Description',
@value = N'正标题', @level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'WX_Activity',
@level2type = N'COLUMN', @level2name = N'articleTitle' END GO IF NOT EXISTS ( SELECT 1
FROM SYSOBJECTS T1
INNER JOIN SYSCOLUMNS T2 ON T1.ID = T2.ID
WHERE T1.NAME = 'WX_Activity'
AND T2.NAME = 'articleSubTitle' )
BEGIN ALTER TABLE [dbo].[WX_Activity] ADD [articleSubTitle] [nvarchar](200) NOT NULL DEFAULT ''
--ALTER TABLE [dbo].[WX_Activity] ADD CONSTRAINT [DF_WX_Activity_articleSubTitle] DEFAULT ('') FOR [articleSubTitle]
--ALTER TABLE [dbo].[WX_Activity] ALTER COLUMN [articleSubTitle] [nvarchar](200) NOT NULL EXEC sys.sp_addextendedproperty @name = N'MS_Description',
@value = N'副标题', @level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'WX_Activity',
@level2type = N'COLUMN', @level2name = N'articleSubTitle' END GO

最新文章

  1. IOS 线程处理 子线程
  2. XQuery的 value() 方法、 exist() 方法 和 nodes() 方法
  3. win7下如何建立ftp服务器
  4. zookeeper 监控 —— 阿里taokeeper
  5. javaScript面向对象基础
  6. 百度之星资格赛——Disk Schedule(双调旅行商问题)
  7. Python自然语言处理学习笔记(69)
  8. Tokyo Tyrant(TTServer)系列(四)-tcrmgr远程管理与调试
  9. devexpress chartcontrol实现非连续点数据的显示
  10. JAVA中LOCK
  11. vivado hls(1)
  12. [Codeforces 864D]Make a Permutation!
  13. sql中索引不会被用到的几种情况
  14. 利用Tensorflow实现卷积神经网络模型
  15. 初识wxPython
  16. install docker swarm on centos
  17. python 自然语言处理库https://www.nltk.org/nltk_data/
  18. swift - 听云监测(Testin - Bugout) - 集成
  19. io多路复用的精髓
  20. 链接href的多重使用

热门文章

  1. 011--python基础知识
  2. 3DMAX 合并镜像物体
  3. GraphicsLab Project学习项目
  4. IOCP编程之基本原理
  5. loj124 除数函数求和 1
  6. DP Codeforces Round #303 (Div. 2) C. Woodcutters
  7. Java三大特性之---封装
  8. 166 Fraction to Recurring Decimal 分数到小数
  9. elasticsearch6安装head插件
  10. 【转】Android Support Library详细介绍