`

SQLServer Schema 修改

 
阅读更多

有人说程序员天生为解决问题而生。

 

工作中总能遇到各种千奇百怪的问题,今天中午正在QC上浏览着BUG列表,突然一下页面卡住不动了,等了半天还是动不了......

 

远程到服务所在的win2003服务器上,桌面、任务栏什么也没有。应该是有后台服务,netstat -anb|findstr“访问端口”看到服务还在。

 

tasklist结合processExp找到服务工作目录,开始排查日志。

 

错误不多,就两个:

1)2018-10-31 12:43:48,687 INFO  [STDOUT] ERROR : Exception at initServerNode
2018-10-31 12:43:48,687 INFO  [STDOUT] java.sql.SQLException: Failed SQL: /* ~~QC */ select * from ADMIN
[Mercury][SQLServer JDBC Driver][SQLServer]对象名 'ADMIN' 无效。

 

2)2018-10-31 12:44:44,437 INFO  [STDOUT] ERROR : failed to delete old messages
2018-10-31 12:44:44,437 INFO  [STDOUT] java.sql.SQLException: Failed SQL: /* ~~QC */ DELETE FROM MESSAGES WHERE (MSG_EXPIRATION_TIME IS NULL AND MSG_SENT_TIME< (select DateAdd("s",-120000/1000,getdate()))) OR (MSG_EXPIRATION_TIME IS NOT NULL AND MSG_EXPIRATION_TIME< (getdate()))
[Mercury][SQLServer JDBC Driver][SQLServer]对象名 'MESSAGES' 无效。

 

数据库用的MSSqlserver2005,用studio查看qcsiteadmin_db数据库中有ADMIN和MESSAGES表,那是空间不对?试着create table admin...,居然能成功,不过已经存在的表是db.admin新建的表是dbo.admin,再启动QC时第一个错消失了,sqlserver默认表空间是dbo!至此问题定位了:代码中访问的表空间和数据库中的表空间不一致。

 

bing了一下sqlserver alter schema batch,找到了以下脚本:

 

DECLARE @SQL VARCHAR (8000),
 @TABLE VARCHAR (1000),
 @oldschema VARCHAR (1000),
 @newschema VARCHAR (1000)
SET @oldschema = 'td'
SET @newschema = 'dbo'
WHILE EXISTS (
	SELECT
		*
	FROM
		sys. TABLES
	WHERE
		schema_name (schema_id) = @oldschema
)
BEGIN
	SELECT
		@TABLE = NAME
	FROM
		sys. TABLES
	WHERE
		object_id IN (
			SELECT
				min(object_id)
			FROM
				sys. TABLES
			WHERE
				schema_name (schema_id) = @oldschema
		)
	SET @SQL = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @TABLE exec (@SQL)
END
运行后问题解决。

 

 

 参考链接:

https://www.sqlservercentral.com/Forums/654301/change-old-schema-name-into-new-schema-name

分享到:
评论

相关推荐

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

    SQL Server 2005微软官方权威参考手册   是Inside Microsoft SQL Server 2005系列书中的第一本,SQL Server类的顶尖之作  全球公认SQL Server 2005经典著作,囊括大量鲜为人知的技术内幕,大师智慧、专家经验尽览...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    2.3 运行安装程序和修改SQL Server安装 2.3.1 创建新的SQL Server实例 2.3.2 添加组件和实例 2.3.3 修复SQL Server 2008安装 2.3.4 升级SQL Server 2008版本 2.3.5 卸载SQL Server 第3章 管理外围安全、访问以及...

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    2.3 运行安装程序和修改SQL Server安装 2.3.1 创建新的SQL Server实例 2.3.2 添加组件和实例 2.3.3 修复SQL Server 2008安装 2.3.4 升级SQL Server 2008版本 2.3.5 卸载SQL Server 第3章 管理外围安全、访问以及...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    2.3 运行安装程序和修改SQL Server安装 2.3.1 创建新的SQL Server实例 2.3.2 添加组件和实例 2.3.3 修复SQL Server 2008安装 2.3.4 升级SQL Server 2008版本 2.3.5 卸载SQL Server 第3章 管理外围安全、访问以及...

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    SQL.Server.2008管理员必备指南.part2.rar(2/4)

     2.3 运行安装程序和修改SQL Server安装 33  2.3.1 创建新的SQL Server实例 33  2.3.2 添加组件和实例 44  2.3.3 修复SQL Server 2008安装 44  2.3.4 升级SQL Server 2008版本 45  2.3.5 卸载SQL Server 45  ...

    SQL.Server.2008管理员必备指南.part1.rar(1/4)

     2.3 运行安装程序和修改SQL Server安装 33  2.3.1 创建新的SQL Server实例 33  2.3.2 添加组件和实例 44  2.3.3 修复SQL Server 2008安装 44  2.3.4 升级SQL Server 2008版本 45  2.3.5 卸载SQL Server 45  ...

    SQL.Server.2008管理员必备指南.part4.rar(4/4)

     2.3 运行安装程序和修改SQL Server安装 33  2.3.1 创建新的SQL Server实例 33  2.3.2 添加组件和实例 44  2.3.3 修复SQL Server 2008安装 44  2.3.4 升级SQL Server 2008版本 45  2.3.5 卸载SQL Server 45  ...

    SQL.Server.2008管理员必备指南.part3.rar(3/4)

     2.3 运行安装程序和修改SQL Server安装 33  2.3.1 创建新的SQL Server实例 33  2.3.2 添加组件和实例 44  2.3.3 修复SQL Server 2008安装 44  2.3.4 升级SQL Server 2008版本 45  2.3.5 卸载SQL Server 45  ...

    可配置的jdbc连接sql server数据库,java源代码

    一个简单的java编写,通过jdbc连接sqlserver数据库的代码,其中可以用config.txt来配置数据库连接,需要根据电脑情况,修改代码中的文件路径即可食用。此代码连接了数据库并且输出一个student表。

    SQL Server 2014如何提升非在线的在线操作

    但这些在线操作并非真正的在线操作,因为在操作开始时,SQL Server需要获得共享表锁(Shared Table Lock (S) ),在操作结束时需要在对应表上获得架构修改锁(Schema Modification Lock (Sch-M) )。因此这些操作是...

    SQL Server 数据库基本操作入门篇【2】

    本文构成比较简单一、用SQL语句新建数据库二、模式(SCHEMA)的定义与删除1. 定义模式2. 删除模式三、基本表的定义、删除与修改1. 创建基本表2. 修改基本表3. 删除基本表 一、用SQL语句新建数据库 用SQL语句新建一个...

    f3-schema-builder:用于PHP无脂肪框架SQL Schema Builder插件

    用于创建和更改SQL数据库表的扩展。 该插件为PHP Fat-Free Framework提供了一个SQL表模式构建器。 这对于安装脚本,动态应用程序或CMS环境可能很有用。 当前支持并完全测试了MySQL,SQLite,PostgreSQL和SQL ...

    Payroll-Management-System:使用Java和Microsoft SQL Server作为后端RDBMS开发的薪资管理软件

    薪资管理系统这是一个使用Java和Microsoft SQL ... 设置: 执行sql文件夹中的“ schema.sql”文件。 将文件夹作为netbeans项目打开。 配置您的ODBC数据源: 打开ODBC数据源管理器。 添加一个新的数据源。 选择“ SQL

    cdc变更表结构步骤

    db2采用cdc同步数据,当表结构需要发生变动时操作步骤

    [详细完整版]数据库与架构.doc

    分离主体与架构 以前的版本,如SQL Server 2000,提供有CREATE SCHEMA语句,但是由于在用户和架构之间的隐式关系不能被更改或删除,所以它并没有 任何有效的用途。实际上,这种关系是如此紧密以至于很多SQL Server ...

    经典SQL脚本大全

    │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ ...

    经典SQL语句大全

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

    SQL-Shoot:更改数据库的控件。 SQL Server,PostgreSQL和SQLite

    SQL射击 更改数据库控制版本控制您SQL脚本一致,有序的部署变更历史记录平台类支持的数据库PostgreSQLSQL服务器SQLite的客户群开始使用社区加入SQL Shoot社区! 观看此重新发布以获取有关最新版本的警报加入GitHub...

    wabacus4.1开发的信息化系统<hilltop升级版>

    ====20130703==== ...1.说明: 这是一个用wabacus4.1开发的系统(此次升级支持sqlserver和oracle)(wabacus4.1+tomcat6+jdk1.6+...5.此次升级支持sqlserver2008和oracle,请根据数据库类型选择对应的脚本,并修改程序的数据源

Global site tag (gtag.js) - Google Analytics