给定一个只有 IDENTITY 列的表,如何插入新行?我尝试了以下方法:
INSERT INTO TABLE
(Syntax error)
INSERT INTO TABLE VALUES()
(Syntax error)
INSERT INTO TABLE (Id) VALUES()
(Syntax error)
Run Code Online (Sandbox Code Playgroud)
我正在测试一些东西,只需要 IDENTITY 列。它不是用于生产。否则,这样的表可以用作序列生成器,不需要其他列。
我有两个表之间的关系。外键表可以在主表中有一行相关。有没有办法将 FK 列的值强制为 NULL 或主表中 PK 列的值之一?
我有一个包含许多属性的表,可以将这些属性分组为逻辑组,因此将这些属性放在单独的表中的想法似乎很有吸引力。逻辑组并不代表实体本身。设置组中的一个属性后,也必须设置该组中的大多数其余属性(但不是全部)。组的字段类型一般为VARCHAR(15-20)
. 也没有BLOB
orTEXT
字段。
逻辑组不代表子类型,因为它们并不相互排斥。
该实体对阅读的要求多于对写作的要求。因此,一张大桌子看起来很合适。此外,这样就可以避免查询中的连接。我不喜欢这种方法的部分是大量可为空的字段。
寻求专家建议。
我需要获取MAX
交易中某个字段的聚合。我在事务中进一步使用此值。我想避免在整个表中插入,而我正在从中获取MAX
事务完成时。
我研究了可用的隔离模式和锁定提示。最接近的似乎是TABLOCKX
,这是唯一避免在整个表中插入(也更新和选择)的方法。
由于我不会受到表中更新或选择的影响,我希望避免在事务期间仅插入。这个有可能?
更新:执行的字段MAX
仅在插入时设置,因此没有获得更新结果过时的风险。
我正在使用 SQL Server 2000。