我正在尝试更新SQL Server表中用于生成ID的列: 表的结构是这样的
名称varchar(50),LastID长
在最后一个ID中,我们保留为诸如StudentID之类的内容生成的最后一个ID。所以数据看起来像这样
df['gender'] = np.select([df.name.str.contains(" |".join(m_names)),
df.name.str.contains(" |".join(f_names))],
[2, 1],
default=3)
最后一个ID递增1,以生成(主键)的唯一ID。
现在有一种情况,当到达最后一个最大值(例如100000)时,我们必须将此LastID重置为0。所以我在用
public function readCell($column, $row, $worksheetName = '')
{
// Read rows J , BB and CC only
if (in_array($column, range('J', 'J'))
|| in_array($column, range('BB','BB'))
|| in_array($column, range('CC','CC')))
{
return true;
}
return false;
}
范围是我们传递给存储过程的参数,一般情况下为100。因此,在设置LastID之前,我先检查它是否超出了Max作为学生ID,即1,00,000。
在上述更新查询中困扰我的是,如果没有超出范围,我将再次将LastID更新为当前值。寻找更好的选择。我不想做的是:
使用select并将LastID保留在变量或类似的内容中。
如果可能的话,我只想进行一次更新。
这是一个sql server 2008数据库,所以我不能使用sql server 2012的内置序列功能。
如果需要更多信息,请告诉我。