不要问我为什么,但我想有一个列,其中标识存储为varchar。是否可以在创建过程中分配这个值,还是需要范围标识和更新?用当前标识插入新行作为值
编辑:澄清这是一个现有的表,我不能以任何方式修改。我只想插入新的行。
通常我会做到这一点:
INSERT INTO [User]
(
-- id -- this column value is auto-generated,
useridcr,
dtcr,
varcharid
)
VALUES
(
25,
'2015-01-30 00:00:00.000'
''
)
SET @id = SCOPE_IDENTITY()
UPDATE [User]
SET
varcharid = @id
WHERE id = @id
但有可能知道新标识的该值的创建之前呢?所以我可以使用insert语句中的值。就像这样:
INSERT INTO [User]
(
-- id -- this column value is auto-generated,
useridcr,
dtcr,
varcharid
)
VALUES
(
25,
'2015-01-30 00:00:00.000'
[generatedID]
)
谢谢
你可以在表格中添加一个**触发器**吗?这可能会将您的'varchar'列设置为新插入的身份值的值 –