先刪除約束。
--刪除指定表中的指定列的約束
create procedure p_delconstraint
@table_name varchar(50), --表名
@col_name varchar(50) --列名
as
declare @tbname sysname,@fdname sysname
select @tbname=@table_name --要處理的表名
,@fdname=@col_name --要處理的欄位名
--定義刪除處理的語句
declare tb cursor local for
--預設值約束
select sql='alter table ['+b.name+'] drop constraint ['+d.name+']'
from syscolumns a
join sysobjects b on a.id=b.id and a.name=@fdname and b.name=@tbname
join syscomments c on a.cdefault=c.id
join sysobjects d on c.id=d.id
union --外來鍵引用
select s='alter table ['+c.name+'] drop constraint ['+b.name+']'
from sysforeignkeys a
join sysobjects b on b.id=a.constid
join sysobjects c on c.id=a.fkeyid
join syscolumns d on d.id=c.id and a.fkey=d.colid and d.name=@fdname
join sysobjects e on e.id=a.rkeyid and e.name=@tbname
join syscolumns f on f.id=e.id and a.rkey=f.colid
union --主鍵/唯一鍵/索引
select case when e.xtype in('pk','uq') then 'alter table ['+c.name+'] drop constraint ['+e.name+']'
else 'drop index ['+c.name+'].['+a.name+']' end
from sysindexes a
join sysindexkeys b on a.id=b.id and a.indid=b.indid
join sysobjects c on b.id=c.id and c.xtype='u' and c.name=@tbname
join syscolumns d on b.id=d.id and b.colid=d.colid and d.name=@fdname
left join sysobjects e on e.id=object_id(a.name)
where a.indid not in(0,255)
--執行刪除
declare @s varchar(8000)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go
資料庫的增 刪 改 查 增加列 刪除列
varchar n n為數字,表示n位數的字元。增 create datebase xuesheng 建立一個xuesheng的資料庫,注意要有go go create table xueshengxinxi code int,編號為int name varchar 20 名字為varchar sc...
資料庫列約束
你還看不懂資料庫列約束嗎?資料庫列約束 1.主鍵約束 primary key 宣告瞭主鍵約束的列上不允許插入重複的值 一個表中只能有一個主鍵約束 一般將主鍵約束設定給編號,特點 主鍵約束會自動由小到大自動排序 語法 create table 表名 lid int primary key,lid 表示...
資料庫列屬性
列屬性 列屬性 真正約束欄位的是資料型別,但是資料型別的約束很單一需要一些額外的約束來更加保證資料的合法性。有以下屬性 1.空屬性 null 預設 和not null 不為空 雖然預設的資料庫基本都是欄位為空,都是在實際開發的時候,儘可能保證所有的資料都不應該為空,因為空資料沒有意義,空資料沒有辦法...
mysql刪除資料庫資料庫 MySQL刪除資料庫
刪除資料庫是指在資料庫系統中刪除已經存在的資料庫。資料庫刪除之後,原來分配的空間將被收回。需要注意的是,資料庫刪除之後該資料庫中所有的表和資料都將被刪除。因此刪除資料庫要特別小心。一 通過sql語句 mysql中,刪除資料庫通過sql語句drop database。其語法格式如下 drop data...
Oracle資料庫 刪除資料庫
1 單擊 開始 oracle oradb12home1 database configuration assistant 進入刪除步驟的第一步,選擇 刪除資料庫 2 單擊 下一步 按鈕,如圖所示。在資料庫列表中選擇需要刪除的資料,例如test,並輸入使用者名稱和口令。3 單擊 下一步 按鈕,開啟 管...