【发布时间】:2013-01-08 01:56:29
【问题描述】:
我正在尝试重命名 SQL Server 2005 上旧数据库中的十几个表的架构。我使用的是 SQL Server Management Studio Express 9.0 版。根据此处找到的详细建议以及其他网站上的几个论坛,我一直在尝试这个简单的命令:
ALTER SCHEMA newschemaname TRANSFER oldschemaname.table1
我一直收到这个错误:
消息 156,第 15 级,状态 1,第 1 行
关键字“SCHEMA”附近的语法不正确
无论是直接在“新建查询”窗口中运行还是构建到存储过程中都是一样的。
数据库的所有者是“SA”,可以追溯到几年前我的网络主机(物理服务器的所有者)首次设置此数据库时。这让我认为可能存在权限问题,或者所有者名称和我正在使用的登录名之间存在一些模糊的不匹配。但如果这是真的,我希望错误告诉我我无权执行该命令。
我是否遗漏了一些明显的语法错误,或者我是否需要深入研究所有权和权限以获得修复此问题的权利?
【问题讨论】:
-
你的数据库的兼容级别是多少?
-
ALTER SCHEMA即使在 compatibility_level=80 下也能工作,所以不可能。SELECT @@VERSION;的输出是什么? -
兼容级别为 SQL Server 2000 (80)。我很惊讶地看到 Select Version 命令返回 SQL Server 2000 - 8.00.2039。我被引导相信几年前已经升级到 2005 年了。
-
解决了!原来这只不过是我认为我正在使用 SQL Server 2005 机器,而实际上我需要使用 2000 的命令语法:sp_changeObjectOwner 'oldschemaname.table1','newschemaname'
标签: sql-server-2005 syntax-error database-schema alter management-studio-express