我有一个拥有多个无密钥表的遗留数据库。首先,我真的只想在其上抛出一个Identity列,以便我可以将它与Entity Framework一起使用。现在,我知道我可以这样做:
alter table MyTable
add Id int identity(1,1)
但是,由于这是一个古老而野蛮的野兽,我想确保它不会破坏任何东西。我无法想象它会如何破坏任何触发器或现有的数据访问(其中一些仍然在VB 6中!)但是" cant'想象"与&#34完全相同;绝对确定。"
我希望数据库方面的一些专家可以在这里给我一些指导。
答案 0 :(得分:2)
如果您的代码中包含任何“Select *”,则可能会破坏某些内容。
示例:
您创建一个包含3列的#temp表。
您的相关论坛有3列。
使用“select * from TheTable”填充#temp表。
现在您在表格中添加第4列。
您的代码现在会尝试将4列压缩到3列#temp表中。
拥有一个不是PrimaryKey的IDENTITY列可能是另一个snap-fu。