如何在SQL Server CE中更改列的类型?

时间:2013-01-25 16:13:03

标签: sql sql-server-ce

我想更改SQL Server Compact Edition数据库中表的列的类型,但似乎是声明

ALTER TABLE [table name] modify [column name] [new type]

无效(VS2010给了我错误:“不支持ALTER TABLE SQL构造或语句。”)。

我的原始类型是INT,我想将其更改为BIGINT。

它是否完全不受SQL Server CE的支持,还是我必须执行另一种查询?

4 个答案:

答案 0 :(得分:6)

您尚未说明“无法正常工作”的含义,但根据Books Online,语法应该是ALTER TABLE [table name] ALTER COLUMN [column name] [new type],就像任何其他SQL Server实例一样。

但是,如果新数据类型不支持列中的数据,则会遇到问题。

答案 1 :(得分:1)

另一种方法是创建一个新表,然后将当前表的值插入到新表中,然后删除旧表。然后重命名新的。

答案 2 :(得分:1)

不要忘记,如果其中的数据与新的COLUMN类型冲突,则无法更改列。例如:COLUMN类型是VARCHAR2,并且有符号,您想要更改为NUMBER。或者数据类型是VARCHAR2(20)并且您想要更改为VARCHAR2(5)并且有超过5个符号的字符串。

答案 3 :(得分:1)

事实上似乎Visual Studio是我的问题的根源,通过使用CompactView程序,查询

ALTER TABLE [table name] ALTER COLUMN [column name] [new type]

工作并解决了我的问题。 :) 非常感谢你的帮助!