sqlserver数据库修改实例名称

2024-11-17 1

sqlserver修改实例名称

1
2
3
4
5
6
7
8
9
10
11
12
if serverproperty('servername') <> @@servername
begin
    declare @server sysname
    set @server = @@servername
    exec sp_dropserver @server = @server
    set @server = cast(serverproperty('servername') as sysname)
    exec sp_addserver @server = @server , @local = 'LOCAL'
END
-- 删除旧的服务器名
EXEC sp_dropserver 'C9FV63M3';
-- 添加新的服务器名
EXEC sp_addserver 'C9FV63M32', 'local';

修改完,重启服务器。执行

1
2
SELECT serverproperty('servername') --服务器名称
SELECT @@SERVERNAME   --数据库实例名

SQLSERVER 修改实例名以及架构信息

1. GUI的方式 后者是 alter database 的方式修改 instance的名字

2. 在全局的安全性下面创建用户.

3. 在实例的安全性下面创建架构和用户(架构名与用户名一直, 使用新实例的名字).

4. 使用sa 执行命令 sp_change_users_login 'Update_one','NEWname','NEWname'

5. 删除之前的的老的架构名和实例.(如果提示有连接 在执行完第六步之后 重新删除.)

6.修改数据库实例中表和视图的属主:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<strong>use newname;</strong>
DECLARE @table SYSNAME;
DECLARE @schema SYSNAME;
DECLARE @new_schema SYSNAME;
<strong>SELECT @schema </strong><strong>= 'oldname' --原有属主
SELECT @new_schema = 'newname' --</strong><strong>新属主</strong>
DECLARE csr CURSOR FOR 
SELECT o.name, u.name FROM sys.objects o 
INNER JOIN sys.schemas u ON o.schema_id = u.schema_id 
WHERE o.type in( 'u','p','v','tf','fn','if') AND u.name = @schema 
OPEN csr;
FETCH NEXT FROM csr INTO @table, @schema
WHILE @@FETCH_STATUS = 0 
BEGIN 
exec ('ALTER SCHEMA ' + @new_schema + ' TRANSFER [' + @schema + '].[' + @table + ']');
FETCH NEXT FROM csr INTO @table, @schema;
END 
CLOSE csr 
DEALLOCATE csr ;

自己写的 改天验证一下.