如何在本地数据库中创建“多选”列?

时间:2015-07-19 11:00:28

标签: c# sql sql-server wpf database

我第一次使用本地数据库使用我的WPF项目。我有数据库设置,我正在连接好的ETC.我想要多个选择,在几个值或一大堆值之间。问题显然是人为错误会在输入数据时偶尔发生拼写错误。

如何进行数据输入,为用户提供多种选择?例如,我有一个名为“Category”的列,目前(这将在稍后扩展)我只想允许以下选项: 青铜 其它

我目前将列设置为nvarchar(50),但是经常手动输入相同的字符串...而不是我想做TBH ...所以...我可以设置它以便有它将接受的预定义值列表? :)

谢谢:D

1 个答案:

答案 0 :(得分:1)

您可以在表列上使用任何复杂度的CHECK约束。 Check MSDN here 所以你的表定义如下:

CREATE TABLE T
(
    Category nvarchar(50) CHECK (Category in ('Bronze','Misc'))
)

如果您希望将来可能的值列表发生更改并且您不想更改表定义,则可以使用值列表创建单独的表并使用外键。

CREATE TABLE Categories
(
    Id int PRIMARY KEY,
    CategoryName nvarchar(50)
)

INSERT INTO Categories VALUES (1, 'Bronze'), (2, 'Silver'), (3, 'Misc')

CREATE TABLE T
(
    CategoryId int REFERENCES Categories
)