当前位置: 首页 > 面试题库 >

SQL Server添加列约束以将数据限制为-1到1

怀洛华
2023-03-14
问题内容

我想限制一个SQL Server十进制列以仅允许-1,0,1作为有效值。

您能告诉我添加这样的约束的SQL语法吗?(我想知道如何在CREATE TABLE语句和/或ALTER TABLE ADD
CONSTRAINT中执行此操作)。

还是只能在触发器中完成?


问题答案:
CREATE TABLE foo (
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)

或者

ALTER TABLE foo WITH CHECK ADD --added WITH CHECK
   CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1)) --not needed "FOR bar"

编辑:想法…

  • 为什么要限制小数点?可以将其更改为smallint或int吗?
  • NULL呢?您可能需要更改我的代码以完全执行所需的操作


 类似资料:
  • 我已经搜索了ArrayList容量问题,但没有找到完整的答案。所以在这里再问一次。 我知道,我们在ArrayList中添加的元素数量和容量的大小是我们可以在默认值为10的列表中放入多少数据。 所以这里的问题是,在宣布是否有这样的能力时 然后我还可以继续将元素增加到10或20。那么,这个容量声明仅对达到容量时发生的内部重新分配有用吗? 或者,通过给出容量限制,我们可以只限制到添加元素的那一点吗?

  • 我有一张桌子,不知怎的,同一个人进了我的桌子两次。现在,主键只是一个自动编号,但还有两个字段存在,我想强制它们是唯一的。 例如,这些字段是: 我只想要一张带有唯一PersonNumber和Active=1的唱片 (因此这两个字段的组合必须是唯一的) SQL server中现有表的最佳方式是什么?我可以这样做,如果其他任何人使用与现有值相同的值进行插入,则插入失败,因此我不必在应用程序代码中担心这一

  • 问题内容: 有没有办法给已经存在的约束命名? 例如 : 在上面的查询中,我没有命名外键约束,因此在创建表之后,我可以为其命名,也可以在不删除列的情况下删除外键约束吗? 问题答案: 是的,您可以像这样重命名约束: 编辑:我忘记了第二个问题。是的,您可以删除约束而不删除列。如果您不知道约束的名称,则可以在表中找到它,如下所示:

  • 很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?

  • 问题内容: 我有一个形状为(X,Y)的Pandas数据框对象,如下所示: 还有一个形状为(X,Z)的numpy稀疏矩阵(CSC),看起来像这样 如何将矩阵中的内容添加到新命名列中的数据框中,以使数据框最终像这样: 请注意,数据框现在具有形状(X,Y + 1),并且矩阵中的行是数据框中的元素。 问题答案: import numpy as np import pandas as pd import s

  • 问题内容: 在事务SQL中,如何指定外键约束应为1:1关系?声明列UNIQUE是否足够?下面是我现有的代码。 问题答案: 具有UNIQUE和NOT NULL约束的外键列在另一个表中引用UNIQUE,NOT NULL列会创建1:(0 | 1)关系,这可能就是您想要的。 如果存在真正的1:1关系,则第一个表中的每个记录在第二个表中都会有一个对应的记录,反之亦然。在这种情况下,您可能只想制作一张表(除非