SQL Server 表结构操作
一、创建表
--直接定义主外键
create table wallet(
ID varchar(36) primary key,
Money decimal(18,2) not null,
Name varchar(36) default '余额',
Member_ID varchar(36) foreign key references Member(ID) unique
)
--或最后定义主外键
create table wallets(
ID varchar(36),
Money decimal(18,2) not null,
Name varchar(36) default '余额',
Member_ID varchar(36) unique,
primary key(ID),
foreign key(Member_ID) references Member(ID),
check(Money > -1),
)
二、修改表结构
1. 添加字段
--alter table 表名 add 字段名 数据类型
alter table wallet add CreateTime date
2. 修改字段名称/表名称
exec sp_rename '表名.旧字段名','新字段命';

3. 修改字段类型
--alter table 表名 alter column 字段名 数据类型
alter table wallet alter column Money decimal(15,2)
4. 设置自动增长可输入
因为自动增长无法取消,除非采用重新建表再把数据同步过来的方法。所以设置该表自动增长字段为可以用insert的语句手动输入
--set IDENTITY_INSERT 表名 on
set IDENTITY_INSERT wallet on
三、修改约束
1. 添加/修改约束
--修改表字段不能为空
alter table wallet alter column createtime date not null
--添加约束表字段必须唯一
alter table wallet add unique(createtime)
--添加主键约束
alter table wallet add primary key(ID)
--添加外键
alter table wallet add foreign key(Member_ID) references Member(ID)
--添加自定义约束
alter table wallet add check(money != 0)
--添加或修改字段的默认值
alter table wallet add default(getdate()) for createtime
其中check、foreign key、primary key、unique,使用constraint关键字为约束命名例如:
alter table wallet add constraint names_unique unique(createtime)
约束的名称为names_unique
2. 删除约束
--alter table 表名 drop constraint 约束名称
alter table wallet drop constraint names_unique
--取消默认值:设置默认值null并且设置该字段允许为null
alter table wallet alter column createtime date null
alter table wallet add default(null) for createtime
SQL Server 表结构操作的更多相关文章
- SQL server 表结构转Oracle SQL脚本
SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...
- SQL Server表结构和数据导入到MySQL
借助的工具:Navicat for MySQL,链接:http://pan.baidu.com/s/1kVCw8IF 密码:g927 可以很明确的肯定,主键和自增列是没办法导入的,只能是表结构和数据. ...
- Sql Server 表结构相关
1.库表列信息 --取所有库 SELECT Name FROM Master..SysDatabases ORDER BY Name --查询所有表 select name from 库名..syso ...
- 查询sql server 表结构
select column_name,data_type from information_schema.columns where table_name = '表名'
- sql server 表结构 导出 到excel
SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, -- 字段序号 = a.colorder, 字段 ...
- SQL server学习(二)表结构操作、SQL函数、高级查询
数据库查询的基本格式为: select ----输出(显示)你要查询出来的值 from -----查询的依据 where -----筛选条件(对依据(数据库中存在的表)) group by ----- ...
- SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)-DML 1.SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL I ...
- SQL SERVER表不能修改表结构的处理方法
SQL SERVER表提示不能修改表结构,这究竟是什么原因呢?下面就为您介绍处理该问题的方法,如果您在SQL SERVER表修改方面遇到过问题,不妨一看. 新装的SQL SERVER 2008,打开原 ...
- SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...
随机推荐
- redis SERVER INSTALL WINDOWS SERVICE
以管理 员身份 运行 CMD 命令,进入redis所在目录,并运行下 脚本redis-server --service-install redis.windows-service.conf --log ...
- Gralde 同步失败
Gralde 同步失败 尝试了各种方法,至少我觉得常见的一些方法我都尝试了.但一直下载依赖失败 > Could not resolve all files for configuration ' ...
- socket上http协议应用(使用socket进行http通信的例子,准备好报头以后,简单read/write就可以了)
前几天看socket本有点晕, 好不容易弄明白了,才发现公司服务器用的是http的. 找了好久也没发现linux下直接用http的api, 不过今日偶然发现了使用socket进行http通信的例子, ...
- 将WriteableBitmap转为byte[]
原文:将WriteableBitmap转为byte[] Win8 metro中的操作与之前的版本有所不同,因此作为一个新手,我将自己的一些问题解答记录了下来,希望与大家分享!! 下面是将Writeab ...
- GIS基础软件及操作(五)
原文 GIS基础软件及操作(五) 练习五.空间分析的基本操作 空间分析的基本操作 空间分析模块 空间分析是基于地理对象的位置和形态的空间数据的分析技术,其目的在于提取和传输空间信息.空间分析是地理信息 ...
- 【备忘】C#语言基础-2
泛型 CollectionClass<ItemClass> items = new CollectionClass<ItemClass>(); items.Add(new It ...
- 我怎么忽略了身份框架魔法,只是使用OWIN验证的中间件,以获得要求我寻求什么呢?
该OWIN中间件的东西第三方登录集成到您的ASP.NET应用程序是非常酷的,但我似乎无法弄清楚如何就剜出来的新的ID,它取代了蹩脚的成员身份 API.我没有兴趣在坚持所产生的债权,并在英法为基础的数据 ...
- Survey Report on Data Skew in Big Data
1 Introduction 信息时代产生了大量的数据,运用和使用数据已经成为一个公司乃至一个国家核心实力的重要组成部分.当代大数据一般指的是:数据量巨大,需要运用新处理模式才能具有更强的决策力.洞察 ...
- Openssl - Static libraries (w32, mingw) 以及对Qt静态编译时的设置
Openssl static libraries created for Windows 32bit using MinGW compiler Compiled with: ./Con ...
- VS2008下QT整合OGRE
环境配置如下:VS2008 QT版本:4.8.1 OGRE版本: 1.7.4 请先配置好QT for vs2008 : 下载QT VS2008的包,然后下个QT VS的插件 版本必须是VS2008 ...