修改已包含数据的sql表中列的后续值

时间:2013-02-20 12:30:04

标签: sql sql-server sql-server-2008

您好我正在开发一个项目,我必须在点击按钮时在数据库中存储一些值。这是创建表的代码:

create table dbo.Cpecial_Partner_Info_tbl
( 
[S.No] int identity(1,1),
[Partner ID] varchar(20),
[Partner Code] varchar(20),
[Partner Name] varchar(100),
[Partner Type] varchar(15),
[User ID] varchar(50) primary key,
[Password] varchar(50),
)

在此表中我添加了一些值。现在我的要求是合作伙伴ID 合作伙伴代码值应来自s.no值。例如,如果 s.no 值为“ 1 ”,则 partnerid parnter code 值应为' part01 '和' pc01 '。我知道创建一个新表并使用我的条件的代码。这是我可以使用的代码:

create table dbo.Cpecial_Partner_Info_tbl
( 
[S.No] int identity(1,1),
[Partner ID] as 'PART' + right('0' + Convert(VarChar(10), [S.No]), 1) persisted,
[Partner Code] as 'PC' + right('0' + Convert(VarChar(10), [S.No]), 1) persisted,
[Partner Name] varchar(100),
[Partner Type] varchar(15),
[User ID] varchar(50) primary key,
[Password] varchar(50),
)

但使用上面的代码意味着我必须重新创建表。所以我的问题是,我是否可以将上述条件应用于合作伙伴ID 合作伙伴代码而无需重新创建表格(因为我已经在表格中有一些重要的数据) ?提前致谢

2 个答案:

答案 0 :(得分:0)

在将值插入表之前,将slno的最大值取为变量,并将变量设置为所有3列。

答案 1 :(得分:0)

您可以执行以下操作来更新表并保留数据: 1.创建具有相同结构的新表 2.将数据从旧表复制到新表 3.禁用旧表中的所有外键 4.更新旧表 5.再次启用外键