SQLServer中如何刪除欄位的自增標識
如何用sql語句去掉表中欄位自增標識:
--建立一個普通列
ALTER TABLE dbo.表名 ADD 列名 INT
GO
--將自增列資料插入新建列名中
UPDATE dbo.表名 SET 列名 = 自增列名;
GO
--刪除自增列
ALTER TABLE dbo.表名 DROP COLUMN 自增列名
GO
--修改增加的列名為自增列的列明
EXEC sys.sp_rename @objname = N'表名.列名',
@newname = '自增列名',
@objtype = 'COLUMN'
一張表有外來鍵或者主鍵時,如何用sql語句去掉表中欄位自增標識
語句如下(多個主鍵,多個外來鍵不行):
--建立一個普通列
IF NOT EXISTS ( SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Table_1') AND name = 'id1')
BEGIN
ALTER TABLE dbo.Table_1 ADD id1 INT
END
GO
IF EXISTS (SELECT COLUMNPROPERTY( OBJECT_ID('Table_1'),'id','IsIdentity'))
BEGIN
DECLARE @name NVARCHAR(100)--外來鍵名
DECLARE @id NVARCHAR(100)--主鍵id
DECLARE @name1 NVARCHAR(100)--主鍵名
DECLARE @sql VARCHAR(MAX)
--刪除外來鍵
IF EXISTS ( SELECT name from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id where f.parent_object_id=object_id('Table_1'))
BEGIN
SET @name= (SELECT name from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id where f.parent_object_id=object_id('Table_1'))
SET @sql='alter table Table_1 drop constraint '+ @name
EXEC(@sql)
END
--刪除主鍵
IF EXISTS ( SELECT CONSTRAINT_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='Table_1')
BEGIN
SELECT @name1=CONSTRAINT_NAME,@id=COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='Table_1'
END
SET @sql='Alter table Table_1 Drop Constraint '+ @name1
PRINT @sql
EXEC(@sql)
--將自增列資料插入新建列名中
UPDATE dbo.Table_1 SET id1 = id
--刪除自增列
ALTER TABLE dbo.Table_1 DROP COLUMN ID
--修改增加的列名為自增列的列明
EXEC sys.sp_rename @objname = N'Table_1.id1',
@newname = 'id',
@objtype = 'COLUMN'
--重新增加主鍵
IF ISNULL(@name1,'')<>''
BEGIN
SET @sql='ALTER table Table_1 add CONSTRAINT '+ @name+' Primary Key('+@id+') '
EXEC(@sql)
END
--重新增加外來鍵
IF ISNULL(@name,'')<>''
BEGIN
SET @sql='ALTER table Table_1 add CONSTRAINT '+ @name+' foreign key(id) references Table_2('+@id+') '
EXEC(@sql)
END
END
GO
--是否存在一個普通列
IF EXISTS ( SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Table_1') AND name = 'id1')
BEGIN
ALTER TABLE dbo.Table_1 DROP COLUMN id1
END
GO
原創: https://www.cnblogs.com/summert/p/7000090.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2742882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle中如何指定表欄位自增Oracle
- SQLServer2012刪除表欄位SQLServer
- [BUG反饋]模型中刪除欄位的BUG模型
- MySQL-刪除欄位MySql
- 在PowerDesigner中自動生成sqlserver欄位備註SQLServer
- Oracle 增加修改刪除欄位Oracle
- oracle刪除表欄位和oracle表增加欄位Oracle
- mySql刪除多個表 刪除多個欄位的SQLMySql
- MyBatis實現MySQL表欄位及結構的自動增刪MyBatisMySql
- SQL Server 自增欄位重置SQLServer
- Oracle-給表刪除欄位Oracle
- SQL Server中根據某個欄位,ID欄位自動增長的實現SQLServer
- ORACLE9I中建立自增欄位的方法(轉)Oracle
- laravel model自定義軟刪除欄位Laravel
- sqlserver中刪除重複資料SQLServer
- oracle和mysql設定自增欄位OracleMySql
- 用SQL語句增加刪除修改欄位SQL
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- 一文詳解MySQL如何同時自增自減多個欄位MySql
- Oracle 增加修改刪除欄位與新增註釋Oracle
- 查詢/刪除重複的資料(單個欄位和多個欄位條件)
- 獲取SqlServer 2005中欄位的備註資訊SQLServer
- javascript刪除字串中的html標籤JavaScript字串HTML
- sqlserver採集欄位的sql語句SQLServer
- Laravel Tips:指定自增欄位起始值Laravel
- SQL Server 自增欄位歸零等問題SQLServer
- PostgreSQL表增加/刪除欄位是否會重寫表SQL
- innodb引擎對自增欄位(auto_increment)的處理REM
- SQL Server語句刪除帶有預設值的欄位SQLServer
- chrome刪除 標題欄滑鼠懸停提示網址Chrome
- 為取出的每個陣列中增加一個自增的id(注意此ID不是資料庫中存的自增id欄位)陣列資料庫
- 觸發器—一個表插入資料時其他欄位同步自增長欄位觸發器
- SQLServer SYSPROCESSES表欄位解說明SQLServer
- 基於MySQL自增ID欄位增量掃描研究MySql
- Oracle 基本操作之 建立自增欄位方法-ORACLE SEQUENCEOracle
- SQL Server 2005裡設定自增欄位SQLServer
- sqlserver查詢一個庫所有表的欄位名及欄位型別SQLServer型別
- Sqlserver修改線上表的表欄位型別SQLServer型別