如何删除Sybase ASE 15表设置中的列。删除Sybase ASE表中的列
我已经尝试了一些,但没有成功:
alter table my_table
drop column1, column2
除了看它没有提供任何解决我的问题Sybase documentation。
'select into'数据库选项未启用数据库 'my_db'。带有数据拷贝的ALTER TABLE无法完成。将'select '设置为'数据库选项并重新运行。
如何删除Sybase ASE 15表设置中的列。删除Sybase ASE表中的列
我已经尝试了一些,但没有成功:
alter table my_table
drop column1, column2
除了看它没有提供任何解决我的问题Sybase documentation。
'select into'数据库选项未启用数据库 'my_db'。带有数据拷贝的ALTER TABLE无法完成。将'select '设置为'数据库选项并重新运行。
由于在数据库中的select into
选项是关闭的,有两个选择要么你使用
sp_dboption my_db, "select into", true
OR
的no datacopy
参数的改变select into
选项表删除列允许您从表中删除列而不执行数据复制,并减少了alter table drop列运行所需的时间。
SYBASE Documentation - Dropping Columns from a Table Without Performing a Data Copy
ALTER TABLE my_table
DROP column1, column2
WITH no datacopy
您忘记在查询中使用关键字'COLUMN'。使用语法如下: -
ALTER TABLE my_table
DROP COLUMN column1, column2
这不是Sybase语法,尽管我确实尝试过。我发现我的解决方案。 – insidesin
我也很震惊地看到,COLUMN关键字在DOCUMENTION中没有提及。但我认为这是各地使用的默认ANSI语法。但最重要的是,你忘了接受我的答案。 ;) –
我找到了解决办法。我的新测试数据库关闭了“select into”选项,这意味着表格的删除/更改被拒绝。
即
sp_dboption my_db, "select into", true
这一切现在看起来太明显了,我知道是什么选项。
有趣的是,必须打开“select into”这一事实意味着Sybase服务器在内部将数据从旧表复制到表的新副本,而不使用事务日志(或使用事务日志只记录页面的分配,而不是页面内的数据更改)。 IE浏览器。有点像批量复制。我想知道这是否会导致复制问题?
另外,为了完整起见,从15.7.1版开始,“no datacopy”功能是新增功能。
只是想与你分享我刚刚有类似的问题,在我的情况下,我不得不在每个列名前添加“drop”。代码如下所示:
alter table dba.ABC
drop column1,
drop column2,
drop column3
commit;
我工作的某些旧版本的sybase并不那么灵活。 干杯
这不适合我。它说“关键字附近的语法不正确”WITH' –
@mani_nz: - 提出新问题或在评论中显示您的查询 – HaveNoDisplayName
'sp_dboption my_db,“select into,”true“在我的工作不起作用,但用双引号替换为单引号确实有用 –