SQLServer修改表所有者

合集下载

sql server 2个实例之间 同步表结构变更

sql server 2个实例之间 同步表结构变更

SQL Server 是一个常用的关系型数据库管理系统,通常用于存储和处理大量的数据。

在实际应用中,有时候需要在不同的 SQL Server 实例之间同步表结构变更,这对于数据的一致性和稳定性非常重要。

本文将介绍在 SQL Server 中,两个实例之间同步表结构变更的方法。

一、利用 SQL Server Replication 实现表结构同步1.1 在 SQL Server 中,可以使用 Replication 来实现两个实例之间表结构的同步。

Replication 是 SQL Server 提供的一种数据同步技术,它可以将数据从一个数据库复制到另一个数据库,并保持这些数据的一致性。

1.2 要使用 Replication 实现表结构的同步,首先需要配置发布者和订阅者。

发布者是数据的源头,它负责将数据发布到其他地方;订阅者是数据的接收端,它接收并存储发布者发布的数据。

1.3 在配置 Replication 的过程中,需要选择合适的同步方案,包括快照复制、事务复制和合并复制等。

选择合适的同步方案可以根据具体的业务需求和数据实际情况来确定。

1.4 在配置完成之后,可以通过 Replication 来实现表结构的同步。

当发布者上的表结构有变更时,Replication 会自动将这些变更同步到订阅者上,从而实现两个实例之间表结构的同步。

1.5 使用 Replication 来实现表结构的同步可以保证数据的一致性和稳定性,但是配置和管理 Replication 需要一定的技术水平和经验。

对于一些复杂的业务需求和数据场景,可能需要更加细致的配置和管理。

二、利用 SQL Server 数据库比较工具实现表结构同步2.1 除了使用 Replication 外,还可以利用一些第三方工具来实现表结构的同步。

在 SQL Server 中,有一些数据库比较工具可以帮助我们比较两个数据库之间的结构差异,从而实现表结构的同步。

sqlserver alter table 语法

sqlserver alter table 语法

在SQL Server 中,使用ALTER TABLE 语句可以修改已经存在的表的结构。

下面是一些常用的ALTER TABLE 语法:1. 添加列(Add Column):```sqlALTER TABLE 表名ADD 列名数据类型```例如:```sqlALTER TABLE EmployeesADD Email V ARCHAR(100)```2. 删除列(Drop Column):```sqlALTER TABLE 表名DROP COLUMN 列名```例如:```sqlALTER TABLE EmployeesDROP COLUMN Email```3. 修改列名(Rename Column):```sqlALTER TABLE 表名RENAME COLUMN 原列名TO 新列名```例如:```sqlALTER TABLE EmployeesRENAME COLUMN OldColumnName TO NewColumnName```4. 修改数据类型(Alter Column):```sqlALTER TABLE 表名ALTER COLUMN 列名新数据类型```例如:```sqlALTER TABLE EmployeesALTER COLUMN Salary DECIMAL(10, 2)```5. 添加主键(Add Primary Key):```sqlALTER TABLE 表名ADD CONSTRAINT 约束名PRIMARY KEY (列名) ```例如:```sqlALTER TABLE EmployeesADD CONSTRAINT PK_Employees PRIMARY KEY (EmployeeID) ```6. 删除主键(Drop Primary Key):```sqlALTER TABLE 表名DROP CONSTRAINT 约束名```例如:```sqlALTER TABLE EmployeesDROP CONSTRAINT PK_Employees```这只是一些ALTER TABLE 语句的示例,SQL Server 还提供了更多其他的语法和选项来修改表结构。

SQLSERVER数据库,备份后,再还原了,发现原来的WEB项目仍然用不了《解决篇》

SQLSERVER数据库,备份后,再还原了,发现原来的WEB项目仍然用不了《解决篇》

SQLSERVER数据库的备份与还原I、通常解决方式在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复。

但是,此时会出现问题,这里说明几种常见问题的解决方法。

一、孤立用户的问题比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于test的用户表。

这个问题有两种办法解决。

先说解决的前提条件。

首先,要用备份文件还原数据库,我们这里的数据库名为testdb,里面有属于用户test的用户表。

这个很容易了操作了,不多讲了,在企业管理器中很方便可以恢复。

恢复后,就产生了孤立用户test。

然后,用sa用户或者具有DBA权限的用户登录,创建一个test数据库登录用户,密码随便设置了,也可以和以前的保持一致。

我们用它来对应孤立的test 用户。

下面就有两种操作方法了,第一种就是改变对象的属主,第二种就是使登录用户和数据库的孤立用户对应起来。

先说第一种方法。

1、修改对象属主就是将原本属于数据库用户test的用户表,修改为属于dbo的用户表;然后修改test登录用户的数据库为testdb,就可以直接使用test登录用户登录后对该数据库进行操作了。

使用的存储过程sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner' 参数说明[ @objname = ] 'object'当前数据库中现有表、视图、用户定义函数或存储过程的名称。

object 是nvarchar(776),没有默认值。

如果架构及其所有者具有相同的名称,则 object 可由现有对象所有者限定,格式为 existing_owner.object。

SQLServer用户权限详解

SQLServer用户权限详解

SQLServer⽤户权限详解⾓⾊当⼏个⽤户需要在某个特定的数据库中执⾏类似的动作时(这⾥没有相应的Windows⽤户组),就可以向该数据库中添加⼀个⾓⾊(role)。

数据库⾓⾊指定了可以访问相同数据库对象的⼀组数据库⽤户。

数据库⾓⾊的成员可以分为如下⼏类:Windows⽤户组或⽤户账户SQL Server登录其他⾓⾊SQL Server的安全体系结构中包括了⼏个含有特定隐含权限的⾓⾊。

除了数据库拥有者创建的⾓⾊之外,还有两类预定义的⾓⾊。

这些可以创建的⾓⾊可以分为如下⼏类:固定服务器固定数据库⽤户⾃定义固定服务器由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外⾯。

下表列出了所有现有的固定服务器⾓⾊。

固定服务器⾓⾊说明sysadmin 执⾏SQL Server中的任何动作serveradmin 配置服务器设置setupadmin 安装复制和管理扩展过程securityadmin 管理登录和CREATE DATABASE的权限以及阅读审计processadmin 管理SQL Server进程dbcreator 创建和修改数据库diskadmin 管理磁盘⽂件下⾯两个系统过程⽤来添加或删除固定服务器⾓⾊成员:sp_addsrvrolemembersp_dropsrvrolemember注意:您不能添加、修改或删除固定服务器⾓⾊。

另外,只有固定服务器⾓⾊的成员才能执⾏上述两个系统过程来从⾓⾊中添加或删除登录账户。

sa登录sa登录是系统管理员的登录。

在以前的SQL Server版本中不存在⾓⾊,sa登录具有所有可能的关于系统管理⼯作的权限。

在SQL Server 2005中,sa登录保持了向后兼容性。

sa登录永远是固定服务器⾓⾊syadmin中的成员,并且不能从该⾓⾊中删除。

注意:只有当没有其他⽅法登录到SQL Server系统中时,再使⽤sa登录。

固定服务器⾓⾊及其权限在某个SQL Server系统中,每个固定服务器⾓⾊都有其隐含的权限。

SQL Server 2008修改表的访问权限

SQL Server 2008修改表的访问权限

SQL Server 2008修改表的访问权限
在SQL Server中,还可以通过修改表的访问权限,指定一个角色对其进行访问、修改、删除等操作。

例如赋予public角色查看Student表中studentID、studentName、sex、classID 四列,操作步骤如下:
(1)启动SQL Server Management Studio,展开Students数据库节点,列出数据库中的表。

(2)右击【student】表,执行【属性】命令。

在弹出的【属性】窗口中,单击【权限】选择页,进入【权限】页面,如图3-5所示。

图3-5 【权限】页面
(3)单击【搜索】按钮,将弹出【选择用户或角色】对话框,单击【浏览】按钮,如图3-6所示。

然后,在弹出的【查找对象】对话框中,启用“[public]”前的复选框,并单击【确定】按钮,如图3-7所示。

图3-6 选择用户或角色图3-7 查找对象(4)在【表属性】对话框中,选择【显示】选项卡中的【更新】权限,并启用【列权限】按钮。

通过单击【列权限】按钮打开【列权限】对话框,如图3-8所示。

图3-8 授予权限
(5)在【列权限】对话框中,设置studentID、studentName、sex、classID这4列的
权限,启用可以查看的列的复选框,单击【确定】按钮退出,如图3-9所示。

(6)在【表属性】窗口单击【确定】按钮,完成表属性修改操作。

修改表的属性sql

修改表的属性sql

SqlServer修改表结构总结增加字段删除字段增加约束删除约束修改缺省值修改字段数据类型重命名字段重命名表。

所有这些动作都是用ALTER TABLE 命令执行的。

增加字段要增加一个字段使用下面这样的命令ALTER TABLE products ADD COLUMN description text新增的字段对于表中已经存在的行而言最初将先填充所给出的缺省值如果你没有声明DEFAULT子句那么缺省是空值。

你也可以同时在该字段上定义约束使用通常的语法ALTER TABLE products ADD COLUMN description text CHECK description 实际上所有在CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。

不过我们要注意的是缺省值必须满足给出的约束否则ADD 将会失败。

另外你可以在你正确填充了新字段的数值之后再增加约束见下文。

删除字段要删除一个字段使用下面这样的命令ALTER TABLE products DROP COLUMN description不管字段里有啥数据都会小时。

和这个字段相关的约束也会被删除。

不过如果这个字段被另外一个表的外键所引用PostgreSQL 则不会隐含地删除该约束。

你可以通过使用CASCADE 来授权删除任何依赖该字段的东西ALTER TABLE products DROP COLUMN description CASCADE参阅Section 5.11 获取有关这些操作背后的机制的信息。

增加约束要增加一个约束使用表约束语法。

比如ALTER TABLE products ADD CHECK name ALTER TABLE products ADDCONSTRAINT some_name UNIQUE product_no ALTER TABLE products ADD FOREIGN KEY product_group_id REFERENCES product_groups要增加一个不能写成表约束的非空约束使用下面语法ALTER TABLE products ALTER COLUMN product_no SET NOT NULL 这个约束将立即进行检查所以表在添加约束之前必须符合约束条件。

SQLServer中服务器角色和数据库角色权限详解

SQLServer中服务器角色和数据库角色权限详解

SQLServer中服务器角色和数据库角色权限详解SQL Server中服务器角色和数据库角色权限详解在SQL Server中,角色是一种组织和管理权限的方式。

服务器角色和数据库角色是在SQL Server中定义的两种不同类型的角色。

本文将对SQL Server中的服务器角色和数据库角色的权限进行详细解析。

一、服务器角色权限在SQL Server中,服务器角色是用于管理整个SQL Server实例的一组权限。

它们决定了对于整个服务器来说,特定的用户或者登录名可以执行哪些操作。

下面是SQL Server中常见的服务器角色及其权限的详细解析:1. 系统管理员(sysadmin):该角色具有最高权限,可以执行服务器上的所有操作,包括创建、修改和删除数据库,管理登录名和其他角色等。

2. 安全管理员(securityadmin):该角色负责管理服务器安全相关的操作,例如创建和管理登录名、数据库用户、角色成员等。

3. 数据库管理员(dbcreator):该角色可以创建、修改和删除数据库,但不能执行服务器级别的操作。

4. 服务器操作员(serveroperator):该角色负责管理服务器操作,例如启动、停止和暂停服务器,以及监视服务器所有进程。

5. 备份操作员(backupoperator):该角色可以备份和还原数据库。

6. 数据库还原操作员(dbdatareader、dbdatawriter):dbdatareader 角色允许成员读取数据库中的数据,dbdatawriter角色允许成员向数据库中写入数据。

7. 登录名-服务器角色映射:SQL Server还支持将登录名直接映射到服务器角色,从而给予其对应的权限。

二、数据库角色权限数据库角色是在SQL Server数据库级别定义的一组权限。

它们决定了对于具体数据库来说,特定的用户或者登录名可以执行哪些操作。

下面是SQL Server中常见的数据库角色及其权限的详细解析:1. 数据库所有者(db_owner):该角色具有对于数据库中的所有对象具有完全控制权,可以执行所有操作。

sql server 数据库用户权限管理的设置

sql server 数据库用户权限管理的设置

题目:SQL Server数据库用户权限管理的设置一、概述SQL Server是一种常用的关系型数据库管理系统,它提供了丰富的用户权限管理功能,可以对不同的用户设置不同的权限,以保障数据库的安全性和稳定性。

本文将介绍SQL Server数据库用户权限管理的设置方法和注意事项。

二、SQL Server的用户权限管理概述1. 用户权限概念在SQL Server中,用户可以是数据库管理员、开发人员或普通用户,每个用户都有一个唯一的标识符,称为登入名。

用户权限是指用户对数据库对象(如表、视图、存储过程等)所拥有的操作权限,包括查询、修改、删除等。

2. 用户权限级别SQL Server中的用户权限通常分为以下几个级别:(1) 服务器级别权限:包括对服务器级对象(如登入名、数据库、备份等)的权限管理。

(2) 数据库级别权限:包括对数据库中对象(如表、视图、存储过程等)的权限管理。

(3) 对象级别权限:包括对特定数据库对象的权限管理,如表、视图、存储过程等。

(4) 列级别权限:包括对表的某些列的权限管理。

3. 权限管理原则(1) 最小权限原则:即给予用户的权限应该是最小权限,用户只能拥有其工作所需的权限,不应该给予过多权限。

(2) 适当权限分配:即根据用户的职责和工作需求,合理分配用户权限。

三、SQL Server用户权限管理设置方法1. 创建登入名在SQL Server Management Studio中,使用管理员登入创建新的登入名,设置登入名的登入方式,包括Windows身份验证和SQL Server身份验证,设置登入名的权限和默认数据库。

2. 创建数据库用户在特定数据库中,使用管理员登入创建新的数据库用户,并将其与已有的登入名关联。

设置数据库用户的默认模式、权限和角色。

3. 授权用户权限对数据库中的对象(如表、视图、存储过程等)进行权限管理,包括授予查询、修改、删除等操作的权限。

可以通过SQL语句或图形化界面进行权限控制。

批量修改MSSQL表和视图及存储过程的所有者

批量修改MSSQL表和视图及存储过程的所有者

批量修改MSSQL表和视图及存储过程的所有者批量修改表的所有者:EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '单个修改表所有者:exec sp_changeobjectowner '要改的表名','dbo'"?":原所有者的名称批量修改视图和存储过程的存储过程:CREATE PROCEDURE ChangeProcOwner@OldOwner as NVARCHAR(128),@NewOwner as NVARCHAR(128)ASDECLARE @Name as NVARCHAR(128)DECLARE @Owner as NVARCHAR(128)DECLARE @OwnerName as NVARCHAR(128)DECLARE curObject CURSOR FORselect 'Name' = name,'Owner' = user_name(uid)from sysobjectswhere user_name(uid)=@OldOwner and xtype='p'order by nameOPEN curObjectFETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0)BEGINif @Owner=@OldOwnerbeginset @OwnerName = @OldOwner + '.' + rtrim(@Name)exec sp_changeobjectowner @OwnerName, @NewOwnerendFETCH NEXT FROM curObject INTO @Name, @OwnerENDclose curObjectdeallocate curObjectGO执行exec ChangeProcOwner 'xx','dbo' --修改视图所有者要写上原所有者名或者exec ChangeProcOwner '?','dbo'另找一别人的方法,修改视图跟存储过程很方便--执行这个语句,就可以把当前库的所有表的所有者改为dboexec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''--如果是要用户表/存储过程/视图/触发器/自定义函数一齐改,则用游标(不要理会错误提示) declare tb cursor local forselect 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['+replace(name,']',']]')+']'',''dbo'''from sysobjectswhere xtype in('U','V','P','TR','FN','IF','TF') and status>=0open tbdeclare @s nvarchar(4000)fetch tb into @swhile @@fetch_status=0beginexec(@s)fetch tb into @sendclose tbdeallocate tbgo1. sp_changeobjectowner更改当前数据库中对象的所有者。

sql server里alter user的用法

sql server里alter user的用法

sql server里alter user的用法SQL Server是一款常用的关系型数据库管理系统,在数据库管理和查询方面具有广泛的应用。

其中,ALTER USER语句是用于修改数据库用户信息和权限的重要命令。

本文将详细介绍ALTER USER语句的用法及其相关注意事项。

一、ALTER USER语句简介ALTER USER语句是SQL Server中用于修改数据库用户信息和权限的命令。

它可以改变用户的登录名、密码、默认数据库、默认模式以及权限角色等。

ALTER USER语句非常灵活,可以根据具体需求对用户进行个性化配置。

二、修改用户登录名和密码1. 修改用户登录名在使用ALTER USER语句修改用户登录名时,需要使用以下语法:ALTER USER username WITH LOGIN = new_loginname;示例:ALTER USER JohnSmith WITH LOGIN = JS;通过以上语句,将用户"JohnSmith"的登录名修改为"JS"。

2. 修改用户密码使用ALTER USER语句修改用户密码需要使用以下语法:ALTER USER username WITH PASSWORD = 'new_password';示例:ALTER USER JohnSmith WITH PASSWORD = 'NewPass123';通过以上语句,将用户"JohnSmith"的密码修改为"NewPass123"。

三、修改用户默认数据库和默认模式1. 修改用户默认数据库使用ALTER USER语句修改用户的默认数据库需使用以下语法:ALTER USER username WITH DEFAULT_DATABASE = database_name;示例:ALTER USER JohnSmith WITH DEFAULT_DATABASE = AdventureWorks;通过以上语句,将用户"JohnSmith"的默认数据库设置为"AdventureWorks"。

sqlserver触发器增删改查操作

sqlserver触发器增删改查操作

Sqlserver中触发器常用操作(新建,删除,修改,查看)一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。

所以触发器可以用来实现对表实施复杂的完整性约束。

二: SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。

这两个表。

一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。

所以触发器可以用来实现对表实施复杂的完整性约`束。

二: SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。

这两个表由系统来维护﹐它们存在于内存中而不是在数据库中。

这两个表的结构总是与被该触发器作用的表的结构相同。

触发器执行完成后﹐与该触发器相关的这两个表也被删除。

Deleted表存放由于执行Delete或Update语句而要从表中删除的所有行。

Inserted表存放由于执行Insert或Update语句而要向表中插入的所有行。

三:Instead of 和 After触发器SQL Server2000提供了两种触发器:Instead of 和After 触发器。

这两种触发器的差别在于他们被激活的同:Instead of触发器用于替代引起触发器执行的T-SQL语句。

除表之外﹐Instead of 触发器也可以用于视图﹐用来扩展视图可以支持的更新操作。

After触发器在一个Insert,Update或Deleted语句之后执行﹐进行约束检查等动作都在After触发器被激活之前发生。

After触发器只能用于表。

一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器﹐一个表的每个修改动作都可以有多个After触发器。

四:触发器的执行过程如果一个Insert﹑update或者delete语句违反了约束﹐那幺After触发器不会执行﹐因为对约束的检查是在After触发器被激动之前发生的。

sql server里alter user的用法

sql server里alter user的用法

sql server里alter user的用法SQL Server是一种广泛使用的关系型数据库管理系统,通过使用ALTER USER语句可以对用户进行修改。

在本文中,我们将深入探讨ALTER USER在SQL Server中的用法,并逐步解释以下内容:1. ALTER USER简介2. ALTER USER语法3. ALTER USER常见用法示例4. ALTER USER注意事项1. ALTER USER简介ALTER USER是一种针对SQL Server中的用户进行修改的命令。

它可以用于更改用户的登录名、密码、默认模式和默认语言等信息。

通过使用ALTER USER,我们可以对数据库中的用户进行灵活的管理和维护。

2. ALTER USER语法ALTER USER语句的基本语法如下:ALTER USER user_name [WITH{LOGIN = login_namePASSWORD = { 'new_password' DEFAULT NULL }DEFAULT_SCHEMA = schema_nameDEFAULT_LANGUAGE = language_name}]其中,user_name是要修改的用户的名称。

可以通过使用WITH子句来指定要进行的修改操作,这些操作包括:- LOGIN:用于更改用户的登录名。

- PASSWORD:用于更改用户的密码。

可以指定新密码、使用默认密码或将密码设置为NULL。

- DEFAULT_SCHEMA:用于更改用户的默认模式。

- DEFAULT_LANGUAGE:用于更改用户的默认语言。

3. ALTER USER常见用法示例下面是一些ALTER USER的常见用法示例:3.1 修改用户的登录名要修改用户的登录名,可以使用以下语法:ALTER USER old_name WITH LOGIN = new_name;例如,要将用户“old_user”更改为“new_user”,可以执行以下命令:ALTER USER old_user WITH LOGIN = new_user;3.2 更改用户的密码要更改用户的密码,可以使用以下语法:ALTER USER user_name WITH PASSWORD = 'new_password';例如,要将用户“user1”的密码更改为“new_password”,可以执行以下命令:ALTER USER user1 WITH PASSWORD = 'new_password';请注意,使用ALTER USER命令更改密码时,密码必须符合SQL Server 的密码策略要求。

SQLServer修改表数据

SQLServer修改表数据

SQLServer修改表数据使⽤SSMS数据库管理⼯具修改数据修改任意⼀条或者多条都可以1:打开数据库,选择数据表,右键点击-》编辑所有⾏(如未配置,点击编辑前200⾏)。

2、编辑需要修改的数据-》编辑完成后,右键点击空⽩处-》选择执⾏SQL即可编辑成功。

使⽤T-SQL脚本修改数据修改单表中⼀⾏单列或者多列数据语法:update 表名 set 列名1=值,列名2=值 where 条件;⽰例⼀:update test1 set age='21' where id='1';⽰例结果:修改单表中多⾏⼀列或多列数据语法:update top(数量) 表名 set 列名1=值,列名2=值2 where 条件;⽰例:update test1 set age='23' where id in ('1','2');update test1 set age='22' where id between '3' and '4';update test1 set age='23' where id>='5' and id <='6';update top(2) test1 set age='23' where id>='5';update test1 set age='23' where test1.id in (select top(2) id from test1 order by id desc);⽰例结果:多表关联修改表中数据语法:update 表1 set 表1.列1=值,表1.列2=值 from 表1 as a,表2 as b where a.列名=b.列名;⽰例:update test1 set ='李华',test1.sex='⼥' from test1 as a,test2 as b where a.classid=b.id;⽰例结果:总结:修改数据表数据,灵活组合修改数据列,数据源,查询条件是关键。

sql server 修改表注释

sql server 修改表注释

在SQL Server 中,你可以使用系统存储过程`sp_addextendedproperty` 来添加或修改表的注释(extended property)。

以下是一个简单的示例,演示如何使用该存储过程添加或修改表的注释:```sql-- 添加或修改表注释EXEC sys.sp_addextendedproperty@name = N'MS_Description',@value = N'你的表注释',@level0type = N'SCHEMA',@level0name = N'你的架构名称',@level1type = N'TABLE',@level1name = N'你的表名称';```请替换以下参数:- `'你的表注释'`:你想要添加或修改的表注释。

- `'你的架构名称'`:表所属的架构名称(通常是dbo)。

- `'你的表名称'`:要添加或修改注释的表的名称。

如果要修改已存在的表注释,确保使用正确的架构名称和表名称。

如果要添加新的注释,确保它不存在于表上。

请注意,这里使用的`sp_addextendedproperty` 存储过程中的`MS_Description` 是用于描述注释的属性名称。

这是SQL Server 系统提供的属性名称之一,用于存储对象的描述信息。

你还可以选择其他属性名称,具体取决于你的需求。

如果你想查看已存在的表注释,可以使用以下查询:```sql-- 查看表注释SELECT AS TableName,CAST(ep.value AS NVARCHAR(255)) AS TableDescriptionFROM sys.tables objLEFT JOIN sys.extended_properties ep ON ep.major_id = obj.object_id AND ep.minor_id = 0 AND ep.class = 1WHERE obj.schema_id = SCHEMA_ID('你的架构名称') AND = '你的表名称';```这个查询会返回指定表的注释信息。

SQLServer快速掌握创建和修改表格

SQLServer快速掌握创建和修改表格

本⽂将介绍数据库定义语⾔(DDL)⽤于创建数据库和表格以及修改表格结果的指令。

当你使⽤这些指令时⼀定要⼩⼼——它很容易删去你的数据库中的主要结构令您丢失数据。

所以,在您开始修改数据库之前,您需要知道数据库是什么。

数据库之间的差异 本⽂中的样品查询系统遵循SQL92 ISO标准。

并不是所有的数据库都遵循该标准,有些数据库做了改进,这会产⽣不可预料的结果。

创建数据库 为了创建表格,你⾸先需要需要创建⼀个可以容纳表格的数据库。

SQL⽤于创建数据库的基本语句是: 以下是引⽤⽚段:CREATE DATABASE dbname; 你的数据库⽤户必须有建⽴数据库的适当权限。

如果与你有关的⽤户不能发出⽤于创建新数据库的命令,要求数据库管理员为你建⽴数据库,你也作为管理员登录然后建⽴数据库并设置权限。

举个例⼦,⽤CREATE指令为⼀个应⽤程序建⽴⼀个数据库⽤于显⽰⼀个⽬录: 以下是引⽤⽚段:CREATE DATABASE Catalog; 这给你⼀个⽤于在查询时与其它表格区分的表格名字。

下⼀步是创建⽤于输⼊它的表格。

创建表格 如你所知,表格是有若⼲个栏⽬所组成。

当创建表格时,你可以定义栏⽬并分配字段属性。

表格建⽴后,可以⽤ALTER 表格指令来修改它,我们稍后将提到这⼀点。

你可以⽤下⾯这条指令来创建数据库,命令⾏的参数为表格名字、栏⽬名字,还有每⼀栏的数据类型。

以下是引⽤⽚段:CREATE TABLE table_name (column1 data_type, column2 data_type, column3 data_type); 不同的数据库提供商的标准差别很⼤。

你的帮助⽂档中应该有⼀段详细说明如何使⽤每⼀种数据、接受何种参数。

以下是引⽤⽚段:Char Char(8) 它包含了⼀个固定长度的字符串,其值常常是字符串长度。

Varchar Varchar(128) 它包含了⼀个长度不⼤于指定值的长度可变的字符串。

(4.42)sqlserver修改数据库名、表名、列名

(4.42)sqlserver修改数据库名、表名、列名

(4.42)sqlserver修改数据库名、表名、列名【1】基本操作【1.1】修改数据库名:sp_renamedbUse master;EXEC sp_dboption 'DBNAME_OLD', 'Single User', 'TRUE'--修改数据库名EXEC sp_renamedb 'DBNAME_OLD', 'DBNAME_NEW'EXEC sp_dboption 'DBNAME_NEW', 'Single User', 'FALSE'【1.2】修改表名:sp_rename--下例将表 customers 重命名为 custs。

EXEC sp_rename 'customers', 'custs'【1.3】修改列名:sp_renameexec sp_rename '[表名].[列名]','[新列名]'【2】核⼼注意事项【2.1】需要的权限 sysadmin 固定服务器⾓⾊成员、db_owner 和 db_ddladmin 固定数据库⾓⾊成员或对象所有者可以执⾏ sp_rename。

只有 sysadmin 和 dbcreator 固定服务器⾓⾊成员才能将"database"作为 object_type 来执⾏ sp_rename。

【2.2】重命名存储过程、视图、表、字段的区别(1)重命名存储过程和视图 重命名存储过程和视图后,请清空过程⾼速缓存以确保所有相关的存储过程和视图都重新编译。

由于存储过程和视图都不存储数据,所以这两种对象均可快速删除和重建。

重命名⽂本对象时,要获得最佳结果,应删除并使⽤其新名称重新创建对象。

(2)重命名表、字段 需要刷新视图,以保证select * 等操作,更好的引⽤表、字段。

SQLServer视图和表的关系:修改了视图,原表不变,修改原表,视图会变吗?

SQLServer视图和表的关系:修改了视图,原表不变,修改原表,视图会变吗?

SQLServer视图和表的关系:修改了视图,原表不变,修改原
表,视图会变吗?
我们都知道修改视图,原表是不变的。

但是,修改原表的话,视图会变吗?
要想都变,是不是要原表和视图⼀起修改。

修改原表,视图有时候会变,有时候不变,原因跟什么有关?跟add表有关还是跟??
多⽤户编辑是怎么实现的
修改原表,⽐修改视图速度更快??但是为什么有时修改原表,视图会跟着变,有时候视图不会跟着变。

解决办法:删除视图,修改原表,新建视图
同样⽅法创建的两个表,为什么原来创建的表搜索快,新发布的搜索慢
1. 属性多?
2. 索引?
难道第⼀个表对ObjectID建了索引,先建索引再建视图??。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

批量修改:
EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '
单个修改:
exec sp_changeobjectowner '要改的表名','dbo'
只有所有者才能更改表的所有者
有很服务器: 消息15001,级别16,状态1,过程sp_changeobjectowner,行38 对象'user' 不存在或不是对此操作有效的对象。

多表是导入的一些所有者的密码都不记得就会产生
觉得是不是没有原来的所有者我加了一下嘿嘿正常!
exec sp_changeobjectowner '表所有者.要改的表名','dbo'
就不需表的所有者才能修改了
补充:
--执行这个语句,就可以把当前库的所有表的所有者改为dbo
exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''
--如果是要用户表/存储过程/视图/触发器/自定义函数一齐改,则用游标(不要理会错误提示) declare tb cursor local for
select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['
+replace(name,']',']]')+']'',''dbo'''
from sysobjects
where xtype in('U','V','P','TR','FN','IF','TF') and status>=0
open tb
declare @s nvarchar(4000)
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
go
1. sp_changeobjectowner
更改当前数据库中对象的所有者。

语法
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
参数
[@objname =] 'object'
当前数据库中现有的表、视图或存储过程的名称。

object 的数据类型为nvarchar(517),没有默认值。

object 可用现有对象所有者限定,格式为existing_owner.object。

[@newowner =] 'owner'
即将成为对象的新所有者的安全帐户的名称。

owner 的数据类型为sysname,没有默认值。

owner 必须是当前数据库中有效的Microsoft? SQL Server? 用户或角色或Microsoft Windows NT? 用户或组。

指定Windows NT 用户或组时,请指定Windows NT 用户或组在数据库中已知的名称(用sp_grantdbaccess 添加)。

返回代码值
0(成功)或1(失败)
注释
对象所有者(或拥有对象的组或角色的成员)对对象有特殊的权限。

对象所有者可以执行任何与对象有关的Transact-SQL 语句(例如Insert、Update、Delete、Select 或EXECUTE),也可以管理对象的权限。

如果拥有对象的安全帐户必须要除去,但同时要保留该对象,请使用sp_changeobjectowner 更改对象所有者。

该过程从对象中删除所有现有权限。

在运行sp_changeobjectowner 之后,需要重新应用要保留的任何权限。

由于这个原因,建议在运行sp_changeobjectowner 之前,编写现有权限的脚本。

一旦更改了对象的所有权,可能要使用该脚本重新应用权限。

在运行该脚本之前需要在权限脚本中修改对象所有者。

有关编写数据库脚本的更多信息,请参见编写数据库文档和脚本。

可以使用sp_changedbowner 更改数据库的所有者。

权限
只有sysadmin 固定服务器角色和db_owner 固定数据库角色成员,或既是db_ddladmin 固定数据库角色又是db_securityadmin 固定数据库角色的成员,才能执行
sp_changeobjectowner。

示例
下面的示例将authors 表的所有者改为Corporate\GeorgeW。

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW'
请参见
改变数据库所有者:sp_changedbowner
------------------------------以上摘自sql server 的联机丛书
注意:
使用sqlserver2000改变对象(object)(如Table,SP,View)的所有者(owner)时,需要
注意一点:
如果对象改变前的owner为dbo,则直接用:exec sp_changeobjectowner 对象名,新的所有者名就可以成功。

如果再需要改变该对象的所有者,则要用如下语法:
exec sp_changeobjectowner "[所有者].[对象名]",新的所有者。

注意,双引号不可省略,否则提示objectname does not exist。

EXEC sp_changeobjectowner 'cqadmin.authors', 111
2.建与原表结构相同表,然后把数据从原表插入到新表,操作方法:
在sql server企业管理器中选择原表点右键,选择“所有任务/生存SQL脚本”,保存生成的脚本,在脚本中把表的原所有者改成新所有者。

然后再把该脚本运行一遍,数据库中就新生成了一个表,所有者是新所有者,原来的表还在数据库中没有被替换。

新表和旧表表名相同,所有者不同,此时的新表中没有数据。

然后再运行下面的语句往新表中插入数据:
Insert INTO CQAdmin.m_actiondef //新所有者.新表名
Select *
FROM RegaltecDefSchema. CQAdministrator.m_actiondef // 数据库名.旧所有者.旧表名
运行完了就做完了,可以把旧表删掉,也可以留着。

相关文档
最新文档