sqlserver 修改列名及表名的sql语句_MsSql

代码如下:
EXEC sp_rename '表名.[原列名]', '新列名', 'column'

Transact-SQL 参考
sp_rename
更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。

语法

sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]

参数
[@objname =] 'object_name'
是用户对象(表、视图、列、存储过程、触发器、默认值、数据库、对象或规则)或数据类型的当前名称。如果要重命名的对象是表中的一列,那么 object_name 必须为 table.column 形式。如果要重命名的是索引,那么 object_name 必须为 table.index 形式。object_name 为 nvarchar(776) 类型,无默认值。
[@newname =] 'new_name'
是指定对象的新名称。new_name 必须是名称的一部分,并且要遵循标识符的规则。newname 是 sysname 类型,无默认值。
[@objtype =] 'object_type'
是要重命名的对象的类型。object_type 为 varchar(13) 类型,其默认值为 NULL,可取下列值。
值 描述
COLUMN 要重命名的列。
DATABASE 用户定义的数据库。要重命名数据库时需用此选项。
INDEX 用户定义的索引。
OBJECT 在 sysobjects 中跟踪的类型的项目。例如,OBJECT 可用来重命名约束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用户表、视图、存储过程、触发器和规则等对象。
USERDATATYPE 通过执行 sp_addtype 而添加的用户定义数据类型。
返回代码值
0(成功)或非零数字(失败)
注释
只能更改当前数据库中的对象名称或数据类型名称。大多数系统数据类型和系统对象的名称不能更改。
重命名视图时,sysobjects 表中有关该视图的信息将得到更新。重命名存储过程时,sysobjects 表中有关该过程的信息将得到更新。
每当重命名 PRIMARY KEY 或 UNIQUE 约束时,sp_rename 都会自动为相关联的索引重命名。如果重命名的索引与 PRIMARY KEY 约束相关联,那么 sp_rename 也会自动重命名主键。
重要 重命名存储过程和视图后,请清空过程高速缓存以确保所有相关的存储过程和视图都重新编译。
由于存储过程和视图都不存储数据,所以这两种对象均可快速删除和重建。重命名文本对象时,要获得最佳结果,应删除并使用其新名称重新创建对象。
权限
sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员或对象所有者可以执行 sp_rename。只有 sysadmin 和 dbcreator 固定服务器角色成员才能将"database"作为 object_type 来执行 sp_rename。
示例
A. 重命名表
下例将表 customers 重命名为 custs。
EXEC sp_rename 'customers', 'custs'
B. 重命名列
下例将表 customers 中的列 contact title 重命名为 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

请参见
ALTER TABLE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
数据类型
SETUSER
sp_addtype
sp_depends
sp_renamedb
系统存储过程

注:系统数据表不能改

时间: 2024-11-02 23:18:29

sqlserver 修改列名及表名的sql语句_MsSql的相关文章

sqlserver 修改列名及表名的sql语句

代码如下: EXEC sp_rename '表名.[原列名]', '新列名', 'column' Transact-SQL 参考 sp_rename 更改当前数据库中用户创建对象(如表.列或用户定义数据类型)的名称. 语法 sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] 参数 [@objname =] 'object_name' 是用户对象(

mysql批量删除指定前缀的表,批量修改表名的SQL语句

  Select CONCAT( 'drop table ', table_name, ';' )  FROM information_schema.tables  Where table_name LIKE 'uc_%';   注意: like 'uc_%' 其中 uc_是你需要替换的表前缀. 执行查询,会自动生成出 drop table table_name这样的SQL语句. 然后复制 drop语句 可以执行删除的操作了. 这么一来也可以安全的审核一下语句,避免误操作.. 顺便补充一下一个批

mssql数据库中的表、字段sql语句_MsSql

mssql update from 语法 复制代码 代码如下: update a set a.columnname=b.columnname from a,b where b.id=1 1.系统表sysobjects 在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都对应一行. 列名 数据类型 说明 name sysname 对象名 id int 对象标识号 xtype char(2) 对象类型.可以是以下对象类型之一: AF = 聚合函数 (CLR) C = CHECK 约

sqlserver利用存储过程去除重复行的sql语句_MsSql

还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 复制代码 代码如下: ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran --开始事务 drop table [ItemMaster].[dbo].[testim] --删除表 --把不重复记录转存到testim中 select * into [ItemMast

两表连接的SQL语句

两表连接的SQL语句:这两种写法哪种好?现在提倡用哪一种呢? 例如:一个二表连接的SQL,有两种写法: (1)select A.c1,A.c2,B.c1,B.c2 from table1 A,table2 B where A.id=B.id (2)select A.c1,A.c2,B.c1,B.c2 from table1 A join table2 B on A.id=B.id 哪种写法好呢?现在提倡用哪一种? 你喜欢用哪一种? 我习惯用(1) ---这两个哪个好? 其中11楼的回答最为深入.

关于oracle关联表查询的sql语句

问题描述 关于oracle关联表查询的sql语句 现在两张表,分别是表A,表B. 表A: ID CONTENT STARTDATE ENDDATE 1 测试内容1 2014/6/1 2014/6/15 2 测试内容2 2014/5/25 2014/6/30 3 测试内容3 2014/6/8 2014/7/1 4 测试内容4 2014/6/10 2014/6/30 表B: ID A_ID CONTENT MDATE 1 2 测试1 2014/6/5 2 2 测试3 2014/5/3 3 4 测试2

把多表联查的sql语句转换成linq语句

问题描述 把多表联查的sql语句转换成linq语句 SELECT * FROM [group_product] where proid in(select proid from [group_browsehistory] where memid in(select memid from [group_browsehistory] where proid=12)) 在线等,这个sql语句怎么转换成linq??? 解决方案 from x in group_product where group_br

SQL Server数字开头的数据库表名的解决方法_MsSql

今天遇到了个郁闷的问题,关于数据库表名的问题.     SQL Server的数据库的表名可以用数字开头,但是在查询的时候,不能直接写表名,如下:         select *         form 1_tablename     在执行过程中,报错.但是给表名加上中括号,就可以了,如下:         select *         from [1_tablename]     用VS中的DataSet开发时,会自动生成SQL语句,但是生成的SQL语句中,有的加上方括号,但是有的没

修改数据库字段-请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

问题描述 请问怎么用sql语句去修改sqlite中的数据字段的类型呢? 我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手... 解决方案 sqlite数据库中数据类型存在sqlite_master表中 select sql from sqlite_master where tb_name='tbname' 把这条sql语句改了,表结构