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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer2012刪除表欄位SQLServer
- MySQL-刪除欄位MySql
- [BUG反饋]模型中刪除欄位的BUG模型
- mySql刪除多個表 刪除多個欄位的SQLMySql
- 建模:標識欄位 - Dan
- MyBatis實現MySQL表欄位及結構的自動增刪MyBatisMySql
- laravel model自定義軟刪除欄位Laravel
- sqlserver中刪除重複資料SQLServer
- 獲取SqlServer 2005中欄位的備註資訊SQLServer
- Oracle 增加修改刪除欄位與新增註釋Oracle
- 查詢/刪除重複的資料(單個欄位和多個欄位條件)
- sqlserver採集欄位的sql語句SQLServer
- PostgreSQL表增加/刪除欄位是否會重寫表SQL
- Laravel Tips:指定自增欄位起始值Laravel
- 一文詳解MySQL如何同時自增自減多個欄位MySql
- chrome刪除 標題欄滑鼠懸停提示網址Chrome
- 使用OGG新增唯一標識欄位到目標表
- sqlserver 億級資料刪除方案SQLServer
- 基於MySQL自增ID欄位增量掃描研究MySql
- 小馬識途:如何刪除百科?如何刪除百科的不利內容?
- 如何自動填充SQL語句中的公共欄位SQL
- postgresql中資料表如何透過一個欄位標識資料行多種狀態?SQL
- Oracle表 列欄位的增加、刪除、修改以及重新命名操作sqlOracleSQL
- [升級需要用到的] mysql更新表 增加、刪除、修改表欄位MySql
- DB2巧用欄位自動增長主鍵的方法DFDB2
- 如何查詢某個資料表中除某個欄位的所有資訊???
- 如何刪除springboot中的子專案Spring Boot
- Python如何刪除csv中的內容Python
- 如何永久刪除Mac中的檔案?Mac
- SqlServer根據特定欄位分組後,對需要欄位進行分組拼接SQLServer
- 如何定製化Fiori標準應用裡UI欄位的標籤UI
- 刪除字串中的html標籤程式碼例項字串HTML
- 如何理解 package.json 中的 proxy 欄位?PackageJSON
- 在 Linux 中如何刪除檔案中的空行Linux
- 在 Laravel 中自動維護 slug 欄位Laravel
- 達夢資料庫DM管理工具如何新增修改刪除資料庫欄位資料庫
- XShell、XFtp免費許可證增強:刪除標籤限制!FTP
- sqlserver判斷欄位值是否存在某個字元SQLServer字元