我想将列从日期更新为日期时间。
当我运行查询时,我收到以下消息:
ALTER TABLE ALTER COLUMN 对于表“Transaction”失败,因为它是一个分类帐表,并且该操作需要修改不可变的现有数据。
执行 DbCommand 失败(40ms)[参数=[],CommandType='Text',CommandTimeout='30']
声明 @var0 系统名;
选择@var0 = [d].[名称]
来自 [sys].[default_constraints] [d]
内连接 [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
WHERE ([d].[parent_object_id] = OBJECT_ID(N'[交易]') AND [c].[name] = N'日期');
IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [事务] DROP CONSTRAINT [' + @var0 + '];');
ALTER TABLE [事务] ALTER COLUMN [日期] 日期时间 NOT NULL;
我明白问题所在,但我没有解决方案。
我必须删除数据库并从头开始吗?我需要使用相同的列名,因此创建另一列然后将数据复制到新列不是一个选项。
我似乎无法删除或更新相应的账本表及其记录。
推荐的方法是什么?使用分类帐表是否意味着我将永远无法删除或更改任何列?
任何评论或答案将不胜感激!
如果您创建了仅追加分类账表,您将无法更新或删除记录。只允许插入。您仍然可以删除或更改表中的列,但您需要考虑一些注意事项。
请参阅账本注意事项和限制