我想更改SQL Server Compact Edition数据库中表的列的类型,但似乎是声明
ALTER TABLE [table name] modify [column name] [new type]
无效(VS2010给了我错误:“不支持ALTER TABLE SQL构造或语句。”)。
我的原始类型是INT,我想将其更改为BIGINT。
它是否完全不受SQL Server CE的支持,还是我必须执行另一种查询?
答案 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]
工作并解决了我的问题。 :) 非常感谢你的帮助!