SQL server怎样使用ALTER 语句修改字段名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server怎样使用ALTER 语句修改字段名相关的知识,希望对你有一定的参考价值。

参考技术A 不能直接修改。

①如果有数据,建议按下面方法执行
  --变通:先建一个新的符号要求的字段,然后把老字段的值复制过来,最后把老字段删掉
  alter table table_name
  add new_field_name int
  go
  update table_name
  set new_field_name = old_field_name
  go
  alter table table_name
  drop column old_field_name
  go
②如果没数据,也可以这样
  --循规蹈矩:添加、删除、修改类型

  ALTER TABLE table_name
  ADD column_name datatype
  
  --要删除表中的列,请使用下列语法:
  ALTER TABLE table_name
  DROP COLUMN column_name
  
  --要改变表中列的数据类型,请使用下列语法:
  ALTER TABLE table_name
  ALTERCOLUMN column_name datatype本回答被提问者和网友采纳
参考技术B sqlserver吗?

EXEC sp_rename 'FDI_PROJECT.[c_foreignCountryPer]','c_foreignCompanyPer','COLUMN';

2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件

上一节讲的是直接在创建表的时候添加条件约束,但是有时候是在表格创建完毕之后,再添加条件约束的,那么这个又该如何实现?

其实,跟上一节所写的SQL代码,很多是相同的,只是使用了修改表的ALTER关键字及添加约束的ADD CONSTRAINT关键字而已,其他大同小异。

代码如下:

USE PersonInfo  --使用PersonInfo数据库
GO

IF EXISTS (SELECT * FROM sys.tables WHERE [name] = \'Employee \')  --如果存在Employee这张表
DROP TABLE Employee  --则删除
GO

IF EXISTS(SELECT * FROM sys.tables WHERE [name] = \'Person\')  --如果存在Person这张表
DROP TABLE Person --则删除
GO

CREATE TABLE Person --创建Person(人物)表
(
  --索引
  PersonID int IDENTITY(1,1) NOT NULL,-- 创建一个整型、自增为1、标识种子为1、不允许为空的列PersonID
  --名字
  Name nvarchar(20) NOT NULL, --创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Name
  --年龄
  Age int NOT NULL ,--创建一个整型的列Age
  --性别
  Gender bit NOT NULL, --创建一个类型为bit的列Gender
  --身份信息
  [Identity] nchar(18) NOT NULL--创建一个非Unicode非固定长度(最多存储18个非Unicode字符)的列Identity
)

ALTER TABLE Person
ADD  CONSTRAINT PK_PersonID PRIMARY KEY(PersonID), --为PersonID创建主键约束
     CONSTRAINT CK_Age CHECK(Age >=18 AND Age <=55),--为Age创建检查约束
     CONSTRAINT DF_Gender DEFAULT(1) FOR Gender,--为Gender创建默认约束
     CONSTRAINT CK_Identity CHECK (LEN([Identity])=18),--为Identity创建检查约束
     CONSTRAINT UQ_Identity UNIQUE([Identity]) --为Identity创建唯一约束
GO         

CREATE TABLE Employee --创建Employee(雇员)表
(
    --索引
    EmployeeID int IDENTITY(1,1001) NOT NULL, -- 创建一个整型、自增为1、标识种子为1001、不允许为空的列EmployeeID
    --人物索引 
    PersonID int NOT NULL ,
    --职位 
    Post nvarchar(20) NOT NULL,--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Post
    --入职时间 
    EntryTime datetime --创建一个类型为datetime的列EntryTime
)
GO

ALTER TABLE Employee
ADD CONSTRAINT PK_EmployeeID PRIMARY KEY(EmployeeID),--为EmlpoyeeID创建主键约束
    CONSTRAINT FK_PersonID FOREIGN KEY(PersonID) REFERENCES Person(PersonID),--为PersonID创建外键约束
    CONSTRAINT DF_EntryTime DEFAULT getdate() FOR EntryTime--为EmlpoyeeID创建默认约束
GO

结果:

 

以上是关于SQL server怎样使用ALTER 语句修改字段名的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver数据库中怎样查询某个字段中含有某些字

SQL Server数据库实验2 创建和修改数据表及数据完整性

SQL语句怎么加列

SQL server 两个查询结果拼接成一个,语句改怎样修改?

求vfp中修改字段长度语句

如何在SQL中用ALTER TABLE语句修改表中的列名?