SQL Server ->> 生成代码把表字段从NULL改为NOT NULL
一般我们用SELECT .... INTO语句生成的表字段都是允许为NULL。而如果我们需要改成NOT NULL呢
select 'ALTER TABLE dbo.XXXXXXX ALTER COLUMN ' +
QUOTENAME(c.name) + ' ' + t.name +
case when t.name in ('nvarchar','nchar')
then '('+ cast(c.max_length/2 as nvarchar) +')'
when t.name in ('varchar','binary', 'char', 'varbinary')
then '('+ cast(c.max_length as nvarchar) +')'
else '' end + ' NOT NULL'
from sys.columns c join sys.types t on c.system_type_id = t.system_type_id
where object_id = object_id ('dbo.XXXXXXX') and t.name <> 'sysname'
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 |
||
如果比本身已经建立好在数据库中,我们可以通过一条脚本生成
select c.name, t.name + case when t.name in ('nvarchar','nchar')
then '('+ cast(c.max_length/2 as nvarchar) +')'
when t.name in ('varchar','binary', 'char', 'varbinary')
then '('+ cast(c.max_length as nvarchar) +')'
else '' end, case when c.is_nullable = 1 then 'Yes' ELSE 'No' end
from sys.columns c join sys.types t on c.system_type_id = t.system_type_id
where object_id = object_id ('dbo.XXXXXXX') and t.name <> 'sysname'
order by column_id
SQL Server ->> 生成代码把表字段从NULL改为NOT NULL的更多相关文章
- mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?
最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQU ...
- SQL SERVER 生成MYSQL建表脚本
/****** Object: StoredProcedure [dbo].[GET_TableScript_MYSQL] Script Date: 06/15/2012 13:05:14 ***** ...
- SQL SERVER 生成ORACLE建表脚本
/****** Object: StoredProcedure [dbo].[GET_TableScript_ORACLE] Script Date: 06/15/2012 13:07:16 **** ...
- SQL Server ->> 生成Numbers辅助表
if object_id('MyDB.dbo.Numbers') is not null drop table MyDB.dbo.Numbers go use [MyDB] go create tab ...
- 把sql server 2000的用户表的所有者改成dbo
怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名. 推荐使用下面介绍的第二种方法,执行以下查询便可以了.sp_configure 'allow updates','1' ...
- sql server数据库备份单个表的结构和数据生成脚本
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- 【SQL Server】sql server更改了数据表的字段/新增数据表的字段 无法保存
sql server更改了数据表的字段/新增数据表的字段 无法保存 解决方法:进入 工具-->选项-->Designers-->表设计器和数据库设计器-->取消勾选 即可
- sql server数据库备份单个表的结构和数据生成脚本【转】
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
随机推荐
- 洛谷 P1453 城市环路 ( 基环树树形dp )
题目链接 题目背景 一座城市,往往会被人们划分为几个区域,例如住宅区.商业区.工业区等等.B市就被分为了以下的两个区域--城市中心和城市郊区.在着这两个区域的中间是一条围绕B市的环路,环路之内便是B市 ...
- .NET 海量数据并发处理
.NET 海量数据并发处理 2013-02-19 10:27 提问者悬赏:10分 |XL码的小伙纸| 分类:C#/.NET| 浏览364次 百万级的数据并发处理,网站呈现数据..NET 开发,可能会使 ...
- CFD
Were it free , it would Soar , cloud Sky. 1. 明显 ...
- Hibernate复合主键的注解
[转自] http://blog.csdn.net/happylee6688/article/details/17636801 最近做项目用到了Hibernate框架,采用了纯面向对象的思想,使用OR ...
- 论文笔记 | Self-organized Text Detection with Minimal Post-processing via Border Learning
论文链接:http://openaccess.thecvf.com/content_ICCV_2017/papers/Wu_Self-Organized_Text_Detection_ICCV_201 ...
- Mercurial stuck “waiting for lock”, tortoisehg pull版本卡住在等待 解决办法
最近使用hg的时候,拖取版本一直卡住不动.报错类似waiting for lock on working directory of xxxx held by ''. 原本以为是网络不好或者hg安装有问 ...
- jquery双日历日期选择器bootstrap-daterangepicker日历插件
这个插件既可以作为双日历也可以作为单日历插件(jquery的插件在jquery插件库中http://www.jq22.com/下载很方便,在CSDN下载真麻烦) 引用 <meta http-eq ...
- 实现Docker跨主机间的容器网络联通
Server1(Server) 192.168.81.58 内核版本 3.10.0-123.el7.x86_64 Docker版本 1.12.6Server2(Agent) 192.168.81.5 ...
- 控制台之console
控制台中的用法有很多,比如常用的console.log(),还有不常用的 console.warn(). console.error()等,下面对控制台中主要的console方法做一个简单的介绍. 1 ...
- [转]JQuery控制div外点击隐藏,div内点击不会隐藏
一直弄清楚这个效果如何实现,看了这篇博客的几行代码原来如此简单,就是利用了事件冒泡而已. 比如有个div其id为body,实现在div外点击隐藏,div内点击不隐藏,采用jQuery实现如下: $(& ...