2

我在 SQL 数据库中获得了一个包含四列的表:ID、Comp_Id、Cont_Id 和 Comp_Cont_Id。ID、Comp_Id、Cont_Id 列中的值是手动输入的,并且 Comp_Cont_Id 列中的值将通过连接 ID、Comp_Id、Cont_Id 列中的值自动生成。

例如,如果我们分别在 (ID, Comp_Id, Cont_Id) 中输入 (201, 301, 401),则应在表的 Comp_Cont_Id 列中自动生成值 201_301_401。

有没有办法实现它?如果是这样,请告诉我。

4

2 回答 2

4

MS SQL 支持计算列,语法在这个类似的问题中给出。

DROP TABLE test99
CREATE TABLE test99 (
    id int,  
    comp_id int,  
    cont_id int,
    comp_cont_id AS cast(id AS varchar) + '_' + cast(comp_id AS varchar) + '_' + cast(cont_id AS varchar)
) 

INSERT INTO test99 (id, comp_id, cont_id)
VALUES (201, 301, 401)

SELECT * FROM test99
于 2011-04-05T07:10:02.230 回答
3

您是使用 PHP 还是 ASP.NET 来输入值?如果用户直接键入表,您可以尝试使用触发器来设置最后一个值。

但是,Comp_Cont_Id 是所谓的派生字段。它的值取决于其他字段。派生字段的示例是记录总数、平均价格等。最好动态地提出字段,而不是存储它。当然,这也有例外,例如当性能很重要时。

于 2011-04-05T06:59:54.890 回答