代码之家  ›  专栏  ›  技术社区  ›  cyberbobcat

如何更改SQL server数据库中设置为“只读单元格”的字段?

  •  9
  • cyberbobcat  · 技术社区  · 17 年前

    我有一个SQL数据库,当我通过MicrosoftSQLServerManagementStudio Express查看该数据库时,它的表的字段设置为“只读”。

    我需要手动更改该字段中的某些数据,但我看不到任何可以更改的属性,这些属性将允许我覆盖该字段。

    3 回复  |  直到 16 年前
        1
  •  7
  •   Robin Day    17 年前

    字段的数据类型是什么?如果它是一个ntext或image数据类型,并且ManagementStudio无法处理它的大小,那么您可能无法“键入”它。

    在这种情况下,您可能别无选择,只能执行如下更新。

    UPDATE TableName SET ColumnName = 'NewValue' WHERE PrimaryKeyId = PrimaryKeyValue
    
        2
  •  2
  •   Tomalak    17 年前

    该字段很可能是“只读”的,因为它包含计算值。

    如果是这种情况,则必须更改表定义中的计算以更改其值。

        3
  •  1
  •   AhammadaliPK    11 年前

    当您将特定字段设置为主键并将其设置为“Is Identity”时,就会出现此问题。如果为true,则意味着每当插入时,该字段将自动递增…因此最好检查它是否为自动递增。。如果是,则将该属性“is identity”更改为false。

        4
  •  0
  •   notwhereuareat    7 年前

    在我曾经使用过的一个SQL查询中,我用来生成要编辑的表的查询包含了一个到“服务器对象”(特别是链接服务器)上的表的联接。这将单元格标记为只读,即使我实际要更改数据的表不在链接服务器上。

    建议:检查您的查询是否存在链接服务器或其他可能锁定表的奇怪语句。

        5
  •  0
  •   Raymond Reddington    6 年前

    使用触发器以防止此列更新:

    CREATE TRIGGER UpdateRecord ON my_table
    AFTER UPDATE AS UPDATE my_table
    SET [CreatedDate] = ((SELECT TOP 1 [CreatedDate] FROM Deleted d where d.[id]=[id]))
    
    推荐文章