【问题标题】:help in solving a problem in sql server帮助解决 sql server 中的问题
【发布时间】:2011-04-23 16:13:15
【问题描述】:

我有你的问题。 SQL Server 是否具有任何功能,因此我们可以限制字段仅填充特定值?例如,假设您有一个名为“名称”的字段,那么我们希望 SQL 让我们用以下值填充该字段: “贝拉”、“杰克”、“罗斯”。 有什么功能可以做到吗?请指导我。谢谢

【问题讨论】:

  • 接受一个答案...两者都是正确的。一个给你更多。

标签: sql sql-server tsql database-design


【解决方案1】:

您可以使用CHECK constraint

ALTER TABLE dbo.YOUR_TABLE
ADD CONSTRAINT chk_name CHECK (name IN ('Rose', 'Bella', 'Jack'));

...但如果您需要向多个表添加相同的 CHECK 约束,您可能需要use a separate table & foreign key

名字

  • name_id(主键)
  • 姓名

外键约束:

ALTER TABLE dbo.YOUR_TABLE
ADD CONSTRAINT fk_names FOREIGN KEY (name)
REFERENCES dbo.NAMES (name_id) ;

【讨论】:

  • 关于使用外键的好点,但是将nameid 引入架构是否是一个好主意是另一回事......或者可能只是一个错字;)
【解决方案2】:

【讨论】:

  • ADD CONSTRAINT checkValues CHECK Names in ('Rose', 'Bella', 'Jack');
  • @elton,它应该可以工作,如果它不起作用,您可以使用:ADD CONSTRAINT checkValues CHECK (Name = 'Rose' or name ='Bella' or Name = 'Jack'));
猜你喜欢
  • 2010-10-26
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多