SQL Server – 基本操作 Table 和 Column
前言
日常都是用 EF Core 来管理 Database, 偶尔也用 Management Studio, 就是很少手写 Command. 虽然网上一拉就有很多, 但是每次写单侧都要到处找还是挺烦的.
所以决定写一篇来记入起来.
创建 Table
GO
CREATE TABLE [Product] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(256) NOT NULL DEFAULT '',
[InStock] bit NOT NULL DEFAULT 0,
[Price] decimal(19,2) NOT NULL DEFAULT 0,
CONSTRAINT [PK_Product] PRIMARY KEY NONCLUSTERED ([Id])
);
CREATE UNIQUE CLUSTERED INDEX [IX_Product_Name] ON [Product] ([Name] ASC);
GO
里面涉及到了几个点
1. identity 是 auto increment
2. column name | type | nullable | default value
3. 通常 Id 都是 primary key, 但是 nonclustered 或 clustered 就不一定
4. 如果有 nature key, 那么通常它是 unique + clustered
创建 Column
ALTER TABLE [Product] ADD [NewColumn] nvarchar(256) NOT NULL DEFAULT '';
创建 Computed Column
ALTER TABLE [Product] ADD FullName AS ([FirstName] + ' ' + [LastName]) PERSISTED;
PERSISTED 是永久, 可以做索引
创建 Index
CREATE UNIQUE CLUSTERED INDEX [IX_TableName_Column1Name_Column2Name] ON [Product] ([Column1], [Column1] DESC);
创建 ForeignKey

GO
CREATE TABLE [Color] (
[Id] int NOT NULL IDENTITY,
[ProductId] int NOT NULL,
[Name] nvarchar(450) NOT NULL,
CONSTRAINT [PK_Color] PRIMARY KEY NONCLUSTERED ([Id]),
CONSTRAINT [FK_Color_Product_ProductId] FOREIGN KEY ([ProductId]) REFERENCES [Product] ([Id]) ON DELETE CASCADE); CREATE UNIQUE CLUSTERED INDEX [IX_Color_ProductId_Name] ON [Color] ([ProductId], [Name]);
GO
或者
ALTER TABLE [Color] ADD CONSTRAINT [FK_Color_Product_ProductId] FOREIGN KEY ([ProductId]) REFERENCES [Product] ([Id]) ON DELETE CASCADE;
on delete 有 NO ACTION | CASCADE | SET NULL
创建 Primary Key
alter table [TableName] add constraint [PK_PrimaryKey] primary key clustered (Id);
Edit Column Type
ALTER TABLE [Product] ALTER COLUMN [Name] nvarchar(max);
Rename
rename table 和 column 是很恐怖的操作. 因为 index, foreign key 都会用 table name 和 column name 命名. 所以它需要批量换
EXEC sp_rename 'Product', 'Products'; -- change table name
EXEC sp_rename 'Products.Name', 'NewColumnName', 'COLUMN'; -- change column name
EXEC sp_rename 'Products.IX_Product_Name', 'IX_Product_NewColumnName', 'INDEX'; -- change index name
EXEC sp_rename 'PK_Product', 'PK_Products'; -- change primary key name
EXEC sp_rename 'FK_Color_Product_ProductId', 'FK_Color_Products_ProductId'; -- change foreign key name
上面是基本的操作, 但是我们需要自己把所有 relation 找出来哦. 参考: 我以前写的 rename 笔记
Drop Index
drop index [TableName].[IndexName];
不管是 clustered, nonclustered 都是这样 drop.
Drop Primary Key or Foreign Key
alter table [TableName] drop constraint [PK_PrimaryKey]; -- drop primary key
alter table [TableName] drop constraint [FK_ForeignKey]; -- drop foreign key
查看当前 SQL Server 版本
select @@version;
SQL Server – 基本操作 Table 和 Column的更多相关文章
- SQL Server中Table字典数据的查询SQL示例代码
SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...
- SQL Server基本操作积累
一.基本操作 1.将数据绑定到DataGridVirw控件上显示的数据列标题将会是数据库中的字段名称,可以在使用select语句时使用AS关键字将转化为列名的别名 select name AS 姓名 ...
- SQL Server 关于 Table 字典数据的查询SQL
分享一个关于查询SQL Server Table 结构的SQL 语句. T-SQL 如下: SELECT (case when a.colorder=1 then d.name else '' end ...
- sql server 基本操作
1输入如下命令,即可通过SQL Server命令行启动.停止或暂停的服务. SQL Server命令行如下: 启动SQL ServerNET START MSSQLSERVER 暂停SQL Serve ...
- [转]SQL Server 2008- Get table constraints
本文转自:https://stackoverflow.com/questions/14229277/sql-server-2008-get-table-constraints You should u ...
- 14-3 SQL Server基本操作
SQL Server安装默认新建四个系统数据库 1.master数据库 Master数据库时SQL Server中最重要的数据库.它记录SQL Server实例的所有系统级信息,包括实例范围的元数据. ...
- SQL SERVER 基本操作语句
Sql 是一种结构化的查询语言:Sql是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理‘关系型数据库’系统:Sql对大小写不敏感:Sql不是数据库,是行业标准,是结构化的查询语言 In ...
- SQL Server: create table sql script
---摇奖observeh数据库设计 Function getSpace lottery /* -- Author:geovindu 涂聚文 -- Date: 20180427 为了自写生成代码.根据 ...
- SQL server基本操作(一)
--1.create database CREATE DATABASE MyDB GO --2.use database USE MyDB GO --3.create table CREATE T ...
- 获得sql server的table的表结构 -- 转到word中
SQL语句: select syscolumns.name,systypes.name,syscolumns.length from syscolumns join sysobjects on sy ...
随机推荐
- 解决方案 | pyautogui实现等待特定图片(对话框)出现(可设置等待超时时间)
1.问题 为了等待某个[转换完毕]的图片(对话框)出现,如何设置? 2.解决方案代码如下 下面代码实现的是:设置超时时间为10s,当你在完成前序工作以后,代码开始进入等待,一旦你的特定图片出现了,马上 ...
- XR实时云渲染:助力虚拟仿真实训教学呈现
近年来以5G.云计算.大数据.物联网.人工智能.虚拟现实/增强现实为代表的新兴技术迅速发展加速创新,日益融入经济社会发展各领域全过程,世界主要国家和地区纷纷加快数字化转型战略布局. 虚拟仿真系统是一种 ...
- selenium获取验证码截图
获取验证码截图代码: 获取验证码代码: #!/user/bin/env python3 # -*- coding: utf-8 -*- import requests from selenium im ...
- Goutte爬虫
安装 composer require fabpot/goutte:4.0
- Apachepoi读写Excel实例
/* * 通过poi创建Excel并写入内容 * */ public static void write() throws IOException { //在内存中创建excel XSSFWorkbo ...
- 关于npm ERR! 的一个解决方案
最近在网上找了一个js写的项目,npm下载某些组件总是失败,后经学习了解到了cnpm.使用cnpm时就都可以正常下载,但是下载完成之后程序无法正常启动,所以cnpm下载也是失败的. 后面我经过自己手动 ...
- 2023/4/18 SCRUM个人博客
1.我昨天的任务 初步学习dlib的安装,了解dlib的基础组件 2.遇到了什么困难 对pandas库了解不到位,需要学习其中的基础 3.我今天的任务 初步了解了pandas库,对series和dat ...
- Windows下搭建Vue脚手架CLI
Vue CLI的使用依赖Node.js,先按照Node.js环境. //安装环境C:\Users\16779>npm install --global vue-cli npm WARN depr ...
- 【DataBase】MySQL 09 SQL函数 单行函数其三 日期函数
日期函数 日期&时间函数 NOW 当前日期时间. CURDATE 当前日期. CURTIME 当前时间 -- NOW();返回系统日期+时间 SELECT NOW(); -- CURDATE( ...
- 【PC-Game】世嘉拉力:进化
SegaRally:Revo游戏本体资源: 游侠网115盘 + 详细介绍 https://game.ali213.net/forum.php?mod=viewthread&tid=409661 ...