sybase:无法删除列的默认值

时间:2014-04-04 05:24:57

标签: sybase sybase-ase

我们想要将列类型从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作为语法参考

1 个答案:

答案 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