刪除表中一個字段的SQL語句


1.刪除沒有默認值的列:
alter table Test drop COLUMN BazaarType

2.刪除有默認值的列:
先刪除約束(默認值)alter table Test DROP CONSTRAINT DF__Test__BazaarType__3C4ACB5F
(alter table Test DROP COLUMN BazaarType 提示報錯就是 DF__SheetTest__Attac__0F8D3381)
然后在刪除列 alter table Test DROP COLUMN BazaarType

3.ALTER TABLE 表名 ADD 字段名 INT  DEFAULT (0) NOT NULL;

修改主鍵字段類型

 alter table [tablename] alter column [colname] [newDataType])修改某表的字段類型時,會報錯是因為存在約束。 

a。 將表中的字段設置為NOT NULL(不為空)、給字段增加Default值(默認值)這樣的操作都會給該字段添加約束,增加了這些約束后,在用SQL腳本修改字段類型、刪除字段的時候均會發生類似錯誤.  

b.查找該字段上已存在的約束,並刪除存在的約束.

c.再次執行修改/刪除腳本即可。

 解決方法:

1.查找出表中該字段的約束名稱(或根據已有的提示及對象'DF__******')

declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault 
where a.id = object_id('TableName') 
and a.name ='ColumName'

2. 刪除存在的約束

exec('alter table TableName drop constraint ' + @name)

例如:exec('alter table T_tableName drop constraint  報錯信息的約束名' )

3. 再執行修改字段類型的腳本即可

alter table dbo.T_tableName alter column Id BIGINT not NULL
alter table dbo.T_tableName add constraint PK_Id primary key(Id)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM