我正在尝试创建一个工作应用程序。该应用程序将在内部使用,并允许我们为我们的产品 SKU 分配一些条形码编号。我使用 Visual Studio / Basic 2010 Express 来构建这个,因为我使用 VS 2010 Express 的经验非常有限,而且是初学者。
我将提供一些有关我如何看待该应用程序工作的信息,然后我将继续讨论我的实际问题:
我看到该应用程序允许我们通过用户输入 SKU 和产品描述来在数据库中创建新产品,然后该应用程序将为该产品分配下一个可用的条形码基数,然后应用程序将(如果需要) )生成正确的 EAN13 和 GTIN14 条形码并将其存储到该 SKU 中。
作为一家公司,我们拥有大量可以使用的条形码编号,并且我们已将这一大范围进行了拆分,以便前 50,000 个(例如)用于我们的 EAN13 代码,接下来的 50K 用于我们的内箱 GTIN14 代码,以及剩余 50K 用于 Master Cartons。
因此,为了实现这一目标,我的产品表包含字段“SKU”、“描述”和“BarcodeBase”。我已设法将 BarcodeBase 字段设置为唯一,并且尝试使用 AutoIncrement(Seed & Step) 来确保这为产品分配了一个位于 EAN13 范围内的基本条形码(在计算校验位之前),如上所述...
所以最后我的问题是:有没有一种方法可以对自动增量设置上限,以便万一将来基本条形码编号不会溢出到下一个范围?
我一直在谷歌上寻找答案,但没有成功,我只遇到了一些关于字段的数据类型有限制的事情。例如 Int32 类型的上限。通过我的搜索,我已经模糊地意识到该字段的“表达式”属性以及编码部分类的可能性 - 但我不知道这是否是正确的方向,或者是否有更简单的东西我正在俯瞰/还没有发现。
我真的很感激任何帮助!
编辑:根据 GrandMasterFlush 的评论 - 我已将本地数据库添加到我的 VS 项目中。所以我认为我使用的是 SQL Server Compact 3.5 db。
使用 CHECK 约束,例如:
ALTER TABLE dbo.Product ADD CONSTRAINT ...
CHECK (BarcodeBase BETWEEN 1 AND 50000);
我建议您不要将 BarcodeBase 设置为 Product 表中的 IDENTITY 列(IDENTITY 是您所说的“自动增量”功能)。 IDENTITY 的真正设计目的是代理键仅用于有意义的业务数据,并不理想。您无法更新 IDENTITY 列,它不一定是连续的,数字序列中可能存在间隙,而且每个表只能使用一个 IDENTITY 列。您可以在其他地方生成序列,而不是在 Product 表中使用 IDENTITY,例如通过递增存储在单行表中的单个值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)