Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL 删除外键列

SQL 删除外键列

作者头像
星哥玩云
发布于 2022-08-17 06:16:49
发布于 2022-08-17 06:16:49
1.6K0
举报
文章被收录于专栏:开源部署开源部署

一、SQL删除列的语句是:

alter table tableName drop column columnName  --(其中,tableName为表名,columnName为列名)

但是,如果某列有约束时,不能直接删除,需要先删除约束,再删除列。如果某个列是外键,在不知道外键约束名称的情况下,那么首先是查找外键约束名称,根据名称删除约束,然后再删除列。

二、如何查找外键约束

DECLARE @TableName NVARCHAR(64) = '' DECLARE @ColumnName  NVARCHAR(32) = ''SELECT c.name FROM sysconstraints a inner join syscolumns b on a.colid=b.colid inner join sysobjects c on a.constid=c.id where a.id=object_id(@TableName) and b.name=@ColumnName

上述代码在使用的时候需要给@TableName赋值实际的表名,@ColumnName为实际的列名。

三、知道了约束名就可以删除约束了

ALTER TABLE @TableName DROP CONSTRAINT @CONSTRAINT_NAME

四、将上面的代码合并,于是有下面的代码

DECLARE @TableName NVARCHAR(64) = '' DECLARE @ColumnName  NVARCHAR(32) = '' DECLARE @CONSTRAINT_Key SYSNAME SELECT @CONSTRAINT_Key = c.name FROM sysconstraints a inner join syscolumns b on a.colid=b.colid inner join sysobjects c on a.constid=c.id where a.id=object_id(@TableName) and b.name=@ColumnName DECLARE @Sql NVARCHAR(512) = N'ALTER TABLE ' + @TableName + ' DROP CONSTRAINT ' + @CONSTRAINT_Key EXECUTE sys.sp_executesql @Sql

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
记录容易忘记的方法
提取每个分类前n条记录 SELECT ID, Name, CategoryID FROM TableName AS a WHERE (ID IN (SELECT TOP (n) ID FROM TableName AS b WHERE (a.CategoryID = CategoryID))) 0、更改数据库的路径 USE master Go ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILE
用户1174620
2018/02/26
5990
记录容易忘记的方法
如何快速融入新公司
在面对新的环境,新的岗位,新的挑战,大家难免都会有焦虑和不适应, 怎么快速度过这个适应期,迅速调整自己的心态和状态来适应新的挑战。这里从软实力和硬实力两方面来探讨。
赵云龙龙
2019/09/30
5380
如何快速融入新公司
国产化之路 Linux Mono下的asp.net 开发笔记(二)
       由于原来使用的是MS SQL SERVER 数据库,想实现在SQL查询分析器里,生成创建达梦数据表的脚本。因此写了一个存储过程,该过程实现输入一个表名,会自动转换为对应的脚本,包括创建表和创建键值(修改表)的脚本输出。这是一个适合自己框架的范例程序,大家有兴趣可以进一步修改。脚本代码如下:
初九之潜龙勿用
2024/06/20
1360
增加删除字段修改字段名,修改表结构,非常用SQL语句技巧总结
Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULLGO
用户5745385
2019/10/22
2.3K0
数据字典生成工具之旅(8):SQL查询表的约束默认值等信息
本文主要介绍了数据字典生成工具在.NET平台下的实现,通过实例讲解了如何使用该工具对数据库进行查询,并生成数据字典。同时还介绍了在工具中如何自定义输出内容,以及如何使用该工具对数据库表进行批量操作。
用户1168362
2018/01/05
1.1K0
数据字典生成工具之旅(8):SQL查询表的约束默认值等信息
给SQL补充一个查看表结构的存储过程
数据库中表太多,要查看某个表的结构比较费劲,用此存储过程比较方便;   CRM /******************************************** * 根据表名得到表信息,包括字段说明      ********************************************/    CREATE PROC [dbo].[sp_help_table] (@tableName VARCHAR(200), @ColumnLike VARCHAR(200) = NULL)     
跟着阿笨一起玩NET
2018/09/18
5250
SQL更改表字段为自增标识
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120459.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/15
1.2K0
mysql sql语句大全
根据已有的表创建新表: A:create table tabnew like tabold (使用旧表创建新表) B:create table tabnew as select col1,col2… from tabold definition only 5、说明:删除新表
统计学家
2019/04/10
12.1K1
sqlserver查询数据的所有表名和行数及空间占用量
//查询所有表名 select name from sysobjects where xtype=’u’ –modify_date指表结构最后更新日期,并非数据最后更新日期 SELECT name, object_id, principal_id, schema_id, parent_object_id, type, type_desc, create_date, modify_date, is_ms_shipped, is_published, is_schema_published, lob_data_space_id, filestream_data_space_id, max_column_id_used, lock_on_bulk_load, uses_ansi_nulls, is_replicated, has_replication_filter, is_merge_published, is_sync_tran_subscribed, has_unchecked_assembly_data, text_in_row_limit, large_value_types_out_of_row FROM sys.tables ORDER BY modify_date DESC
全栈程序员站长
2022/07/09
1.4K0
SQL语句大全中的sql语句备忘录—sql日常使用指北
CRUD:增查改删,即,create/read/update/delate 主要被用在描述软件系统中数据库或者持久层的基本操作功能
周陆军博客
2023/05/19
8660
SQL之经典SQL语句大全
经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name  2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack  4
互联网金融打杂
2018/04/03
1.4K0
SQLserver数据库创表、操作表以及存储过程、游标等操作
--创建数据库表以及插入数据 15:40:34 USE master go if exists(select * from sysdatabases where name='EmployeeSys') drop database EmployeeSys go CREATE DATABASE EmployeeSys ON ( NAME = ' EmployeeSys_data', --主数据文件的逻辑名 FILENAME = 'D:
小语雀网
2022/05/06
7410
sql server创建数据表的完整语法_sqlserver语法大全
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
9520
Sql Server 中 根据具体的值 查找该值所在的表和字段
在我们的工作中经常遇到这样一个问题,在页面中保存一条数据,有个字段值为“张三”,但是,不知道这条数据保存在了哪个表中,现在我们想要追踪该值是存储到了那个表的那个字段中,具体要怎么操作呢?下面我们可以借助存储过程来解决这一问题
jamesjiang
2022/11/20
6.5K0
Sql Server 中 根据具体的值 查找该值所在的表和字段
经典SQL语句大全之数据开发
1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多
陈珙
2018/09/12
9050
MySQL【四】---案例实战{拆分多表、外键创建等}
 然后将最大值表和原表关联【可以inner join 或者 left join   on】
汀丶人工智能
2022/12/21
1.1K0
MySQL【四】---案例实战{拆分多表、外键创建等}
SQLServer导出数据库字典
点击导出向导后会出现以下提示,我们选择【Excel文件(2007或以上版本)(*.xlsx)】格式进行导出,单选选择后点击下一步。
红目香薰
2022/11/30
2K0
SQLServer导出数据库字典
powerdesigner 15 如何导出sql schema
PowerDesigner导出所有SQL脚本 操作:Database=>Generate Database PowerDesigner怎么导出建表sql脚本 1 按照数据库类型,切换数据库。 Database-> Change Current DBMS... 2 生成sql脚本 Database -> Database Generation 的Preview选项卡 点击保存按钮,保存产生的sql脚本到本地。 【注意】: 1 本人使用的powerDesigner是15.2版本。 2 产生出的sql脚本一般会有
Java学习123
2018/05/16
1.8K0
数据库基本----SQL语句大全
EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'
阳光岛主
2019/02/19
6.2K0
MS SQL SERVER导出表结构到Excel
在结果就能看到数据库所有表的结构,这个时候只要全选,然后右击出来属性框,选择将结果另存为,这个时候您只要选择导出CSV,然后新建一个Excel表格,在菜单栏选择数据,再选择自文本,后面的大家可以自己的需求自行处理了。
jamesjiang
2022/11/20
1.4K0
相关推荐
记录容易忘记的方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文