一般我们用SELECT .... INTO语句生成的表字段都是允许为NULL。而如果我们需要改成NOT NULL呢

  1. select 'ALTER TABLE dbo.XXXXXXX ALTER COLUMN ' +
  2. QUOTENAME(c.name) + ' ' + t.name +
  3. case when t.name in ('nvarchar','nchar')
  4. then '('+ cast(c.max_length/2 as nvarchar) +')'
  5. when t.name in ('varchar','binary', 'char', 'varbinary')
  6. then '('+ cast(c.max_length as nvarchar) +')'
  7. else '' end + ' NOT NULL'
  8. from sys.columns c join sys.types t on c.system_type_id = t.system_type_id
  9. where object_id = object_id ('dbo.XXXXXXX') and t.name <> 'sysname'
  10. order by column_id

有时需要准备数据库设计文档,里面的物理设计这块需要填写像这样的表

Table: dbo.DimMonth

Column Name

Data Type

Key

Nullable

Comment

Monthkey

bigint

PK

No

CalendarMonth

bigint

No

CalendarMonthName

nvarchar(30)

No

CalendarQuarter

bigint

No

CalendarQuarterName

nvarchar(30)

No

CalendarYear

bigint

No

CalendarYearName

nvarchar(30)

No

FiscalMonthName

nvarchar(30)

No

FiscalMonthOfYear

bigint

No

FiscalQuarter

bigint

No

FiscalQuarterName

nvarchar(30)

No

FiscalYear

bigint

No

FiscalYearName

nvarchar(30)

No

如果比本身已经建立好在数据库中,我们可以通过一条脚本生成

  1. select c.name, t.name + case when t.name in ('nvarchar','nchar')
  2. then '('+ cast(c.max_length/2 as nvarchar) +')'
  3. when t.name in ('varchar','binary', 'char', 'varbinary')
  4. then '('+ cast(c.max_length as nvarchar) +')'
  5. else '' end, case when c.is_nullable = 1 then 'Yes' ELSE 'No' end
  6. from sys.columns c join sys.types t on c.system_type_id = t.system_type_id
  7. where object_id = object_id ('dbo.XXXXXXX') and t.name <> 'sysname'
  8. order by column_id

SQL Server ->> 生成代码把表字段从NULL改为NOT NULL的更多相关文章

  1. mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?

    最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQU ...

  2. SQL SERVER 生成MYSQL建表脚本

    /****** Object: StoredProcedure [dbo].[GET_TableScript_MYSQL] Script Date: 06/15/2012 13:05:14 ***** ...

  3. SQL SERVER 生成ORACLE建表脚本

    /****** Object: StoredProcedure [dbo].[GET_TableScript_ORACLE] Script Date: 06/15/2012 13:07:16 **** ...

  4. SQL Server ->> 生成Numbers辅助表

    if object_id('MyDB.dbo.Numbers') is not null drop table MyDB.dbo.Numbers go use [MyDB] go create tab ...

  5. 把sql server 2000的用户表的所有者改成dbo

    怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名. 推荐使用下面介绍的第二种方法,执行以下查询便可以了.sp_configure 'allow updates','1' ...

  6. sql server数据库备份单个表的结构和数据生成脚本

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  7. 【SQL Server】sql server更改了数据表的字段/新增数据表的字段 无法保存

    sql server更改了数据表的字段/新增数据表的字段  无法保存 解决方法:进入 工具-->选项-->Designers-->表设计器和数据库设计器-->取消勾选   即可

  8. sql server数据库备份单个表的结构和数据生成脚本【转】

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  9. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

随机推荐

  1. leetcode 75 Sort Colors 计数排序,三路快排

    解法一:计数排序:统计0,1,2 的个数 时间复杂度:O(n) 空间复杂度:O(k)    k为元素的取值范围, 此题为O(1) class Solution { public: void sortC ...

  2. restFull接口实现web

    1. 模板引擎JSP的限制 在开始之前呢,我觉得我们有必要先去了解下 Spring Boot 2.0 官方文档中提到的如下内容: 模板引擎 除了REST Web服务之外,还可以使用Spring MVC ...

  3. 【Python】小括号过滤后的盲注

    0x00   环境搭建 sqli-labs第八关,简单修改下源代码,加入下面一行代码 $id=preg_replace('/\(|\)/', "",$id); //过滤小括号 0x ...

  4. PIE SDK图层树右键菜单与命令绑定

    1.   功能简介 上一节已经介绍过图层树如何和地图和制图关联,图层树右键菜单主要是基于TocControl控件进行对菜单节点进行控制,TocControl主要作用是显示当前加载的图层有哪些.采用什么 ...

  5. 01-oracle限定查询-20190404

    关系型数据库和半结构化数据(xml文件) oracle12c:c代表云计算 PDB,CDB sql语句执行顺序: 第一步:from子句控制数据来源: 第二步:where子句使用限定符对数据行过滤: 第 ...

  6. MySQL 常用show 语句

    1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- 显示mysql中所有数据 ...

  7. 读取日志文件,搜索关键字,打印关键字前5行。yield、deque实例

    from collections import deque def search(lines, pattern, history=5): previous_lines = deque(maxlen=h ...

  8. Beam概念学习系列之SDKs

    不多说,直接上干货! https://beam.apache.org/get-started/beam-overview/ Beam SDK 提供了一个统一的编程模型,来处理任意规模的数据集,其中包括 ...

  9. JS正则表达式一些基本使用、验证、匹配、正则匹配时一个变量

    js验证首位必须是字母 var str = "asfg"; /^[a-zA-Z].*/.test(str);//true是,false否 匹配所有空格 var str=" ...

  10. poi excel 常用api

    http://www.cnblogs.com/huajiezh/p/5467821.html