SQL Server 如何添加删除外键、主键,以及更新自增属性

1.添加删除主键和外键

例如:

-----删除主键约束
DECLARE @NAME SYSNAME
DECLARE @TB_NAME SYSNAME
SET @TB_NAME = ‘Date‘
SELECT TOP 1  @NAME=NAME FROM SYS.OBJECTS WITH(NOLOCK)
WHERE TYPE_DESC =‘PRIMARY_KEY_CONSTRAINT‘ AND PARENT_OBJECT_ID = (
    SELECT OBJECT_ID
    FROM SYS.OBJECTS WITH(NOLOCK)
    WHERE NAME = @TB_NAME )
SELECT @NAME as PK
DECLARE @ALTERSQL NVARCHAR(MAX)
SET @ALTERSQL=N‘ALTER TABLE ‘[email protected]_NAME+‘
DROP CONSTRAINT ‘[email protected]+‘‘
EXEC SP_EXECUTESQL @ALTERSQL

----添加主键约束
alter table Date add constraint PK_Date primary key(ID)

----设置外键约束的SQL语句:
alter table student add constraint FK_student_classes foreign key(cla_id)  references classes(ID)

----删除外键约束
alter table student drop constraint FK_student_classes

2.自增属性的更新

------如果仅仅是指定值插入,可用以下语句,临时取消

SET IDENTITY_INSERT classes ON
INSERT INTO classes (ID,Name) VALUES(7,‘测试1‘)
SET IDENTITY_INSERT [classes] OFF

-----新增一列,删除自增列,修改列名

alter table classes add ID_Temp int
update a set ID_Temp=ID

alter table classes drop column ID
exec sp_rename ‘ID_Temp‘, ‘ID‘, ‘column‘

--------通过修改系统关于该表的列属性,该方法使用不当将可能引起其它不可预料的错误(未操作成功)

sp_configure ‘allow update‘,1
reconfigure with override
go
update syscolumns set colstat=0 where colstat=1 and id=object_id(‘tablename‘)
go
sp_configure ‘allow update‘,0
reconfigure with override

时间: 10-29

SQL Server 如何添加删除外键、主键,以及更新自增属性的相关文章

SQL Server 中添加表注释

今天在创建完表之后,发现没有办法给表添加注释说明,字段的注释可以在建表的时候就添加,上网查了一下使用SQL给表添加注释的方法,方法如下: -- 表加注释 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'注释内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名' --例如: EXEC sys.sp_

数据库开发基础-SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)

控制数据库的服务: 方法一: 1.Windows+R 打开运行  打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据库服务 输入net pause MSSQLserver 暂停数据库服务 输入net continue MSSQLserver 继续数据库服务 数据库的创建与管理(增删改查): 打开SQL Server 2008 方法二: 1.打开控制面板→管理工具→服务 2.右键进行选择 数据库的创建与管理: 打开

Hibernate(4)——主键生成策略、CRUD 基础API区别的总结 和 注解的使用

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: hibernate的主键生成策略 UUID 配置的补充:hbm2ddl.auto属性用法 注解还是配置文件 hibernate注解的基本用法 使用Session API CRUD操作对象,以及对象状态的转换 hibernate缓存的概念 get()/load()的区别到底是什么,源码分析 代理模式实现的懒加载 saveOrUpdate()/merge()的区别 Assigned(常用,一般情况使用很方便):

SQL Server数据库学习总结

经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜"十"言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识.  数据库基本是由表,关系,操作组成:对于初学者首先要学的:  1.数据库是如何存储数据的  表,约束,触发器  2.数据库是如何操作数据的  insert,update,delete T-sql 函数 存储过程 触发器  3.数据库是如何显示数据的  select SQLSer

java框架篇---hibernate主键生成策略

Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用) 数据库中的语法如下: MySQL:create table t_user(id int auto_increment

Hibernate配置文件hbm主键的generator可选项

1.自动增长identity适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)数据库中的语法如下:MySQL:create table t_user(id int auto_increment primary key, name v

Java Hibernate 主键生成10大策略

本文将介绍Hibernate中主键生成的几种策略方案,有需要的朋友可以参考一下. 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用) 数据库中的语法如下: MySQL:create table t_u

hibernate 主键生成策略

Hibernate中主键的生成策略主要有以下几种: (1)uuid 原理是使用128位的uuid算法产生主键,从而能够确保网络环境下的一致性.使用此生成策略时,实体类的主键是String类型的,映射成表中字段为varchar.适用所有数据库. [java] view plaincopyprint? <id name="id" column="id"> <span style="white-space:pre">    &l

Mybatis 插入数据后返回主键值

Oracle中获取刚刚插入记录的主键值: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">     <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">    SELECT U_US