我们想要将列类型从smallint更改为decimal。 'alter table'sql语句在UAT数据库服务器中传递但在生产服务器中失败。 DBA建议它可能与列的“默认”约束有关,但这就是我们得到的所有帮助。
我正在考虑在更改列类型之前首先删除默认值。
我尝试了这个sql语句:
alter table MyTable alter MyColumn drop default
但我收到此错误消息:
Error: Incorrect syntax near the keyword 'alter'.
SQLState: ZZZZZ
ErrorCode: 156
这种语法有什么问题?目标DB是15.5
我使用this作为语法参考
答案 0 :(得分:2)
考虑到您列出的版本号,以及Sybase IQ语法为您提供错误消息,我猜测您可能正在使用Sybase ASE。
对于SAP Sybase ASE,您将使用sp_unbindefault
命令删除默认值。
sp_unbindefault 'MyTable.MyColumn'
文档: Adaptive Server Enterprise 15.5 > Reference Manual: Procedures > System Procedures