| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> SQL Server的标识列 -> 正文阅读 |
|
[大数据]SQL Server的标识列 |
在上面语法中, seed 是表中的第一行的值(第一条记录标识列使用的值)。 increment 是添加到上一行标识值的增量值。 seed 和 increment 的默认值是 1 ,即 (1,1) 。 表示加载到表中的第一行的值为: 1 ,第二行的值为: 2 (在上一行: 1 的基础上加 1 ),依此类推。 假设,希望第一行的标识列的值为 10 ,增量值为 2 ,可使用以下语法:
?SQL Server允许每个表只有一个标识列。 创建一个名为 hr 的新模式用来练习:
以下语句在个人标识号( person_id )列上使用 IDENTITY 属性创建新表:
? 重用标识值 SQL Server不能重用标识值。 如果在标识列中插入行并且执行 insert 语句失败或回滚,则标识值将丢 失,并且不会再次生成。 这会导致标识列中出现空白。 方法一: 使用Truncate TRUNCATE TABLE name 可以删除表内所有值并重置标识值 ,但是表内的数据将丢失 方法二: 你想要重置标识值(不删除数据)采用下面方法即可: 1. DBCC CHECKIDENT ('表名', RESEED, new_value) (重置新的标识值,new_value为新值) 2. select IDENT_CURRENT('a') 当前表标识列的最大值 3. select @@IDENTITY 当前标识列的最大值 2.?ALTER TABLE ADD 语句将一个或多个列添加到表中。 以下 ALTER TABLE ADD 语句将新列添加到表中:
?在上面语句中: 首先, table_name 指定要添加新列的表的名称。 其次, column_name 指定列的名称, data_type 表示数据类型, column_constraint 表示约束(如果 适用)。 如果要使用单个 ALTER TABLE 语句一次向表中添加多个列,请使用以下语法:
在此语法中,指定要在 ADD 子句之后添加到表中, 以逗号分隔的列列表。 SQL Server ALTER TABLE ADD列示例 以下语句创建一个名为 sales.quotations 的新表:
要将名为 description 的新列添加到 sales.quotations 表,请使用以下语句:
?以下语句将两个名为 amount 和 customer_name 的新列添加到 sales.quotations 表中:
2.SQL Server修改表的列 修改列的数据类型 要修改列的数据类型,请使用以下语句:
新数据类型必须与旧数据类型兼容,否则,如果列具有数据且无法转换,则会出现转换错误。 请看下面示例。 首先,创建一个包含只有一列数据类型为 INT 的新表:
其次,在表中插入一些行:
接下来,将列的数据类型从 INT 修改为 VARCHAR :
?第三,插入带有字符串数据的新行:
?第四,将列的数据类型从 VARCHAR 修改回 INT :
?SQL Server发出以下错误:
更改列的大小 以下语句创建一个新表,其中一列的数据类型为 VARCHAR(10) :
?将一些示例数据插入到 t2 表中:
可以按如下方式增加列的大小,修改为: 50 :
但是,当减小列的大小时, SQL Server会检查现有数据以查看它是否可以根据新大小转换数据。 如果转 换失败, SQL Server将终止该语句并发出错误消息。 例如,如果将列 c 的大小减小为 5 个字符:?
SQL Server发出以下错误:
3. 向列添加NOT NULL约束 以下语句创建一个具有可为空列的新表: ?
? ?以下语句向表中插入一些行:
然后再添加 NOT NULL 约束:
4. 删除列
? ?3.SQL Server删除表 DROP TABLE 语句从数据库中删除一个或多个表。
在上面语法中, 首先, database_name 指定要删除的表的名称。 其次,指定创建表的数据库的名称以及表所属的模式的名称。 数据库名称是可选的。 如果不指 定, DROP TABLE 语句将删除当前数据库中的表。 第三,使用 IF EXISTS 子句仅在表存在时才删除表。 自SQL Server 2016 13.x起,支持 IF EXISTS 子句。 如果删除不存在的表,则会出现错误。 如果表已经存在,则 IF EXISTS 子句有条 件地删除该表。 当SQL Server删除表时,它还会删除该表的所有数据,触发器,约束和权限。 此外,SQL Server不会显 式删除引用已删除表的视图和存储过程。 要显式删除这些对象,必须使用 DROP VIEW 和 DROP PROCEDURE 语句。 SQL Server允许使用单个 DROP TABLE 语句来一次删除多个表,如下所示:?
SQL Server DROP TABLE示例 下面来看一些使用SQL Server DROP TABLE 语句的示例。 1. 删除不存在的表 以下语句删除 sales 模式中的 revenue 表:
2. 删除单个表示例 以下语句在 sales 模式中创建一个名为 delivery 的新表:
3.删除具有外键约束的表 以下语句在 procurement 模式中创建两个新表: supplier_groups 和 supplier :
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:21:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |