消息“无效的列名。”使用check()时

时间:2019-12-15 14:44:15

标签: sql-server check-constraints

当使用check()表示以下代码中的分类变量时,我收到此消息“无效的列名'status'”。谁能解决这个问题?

CREATE TABLE [dbo].[trips]
(
    id int,
    client_id int,
    driver_id int,
    city_id int,
    status varchar(128) check(status in('completed', 'cancelled_by_driver', 'cancelled_by_client')),
    request_at date
)

INSERT INTO [dbo].[trips] (id, client_id, driver_id, city_id, status, request_at)
SELECT '1', '1', '10', '1',  'completed', '2013-10-01'
UNION ALL
SELECT '2', '2', '11', '1',  'cancelled_by_driver', '2013-10-01'
UNION ALL
SELECT '3', '3', '12', '6',  'completed', '2013-10-01'

---编辑---
很抱歉,我的原始示例的“状态”列的级别不一致:“状态varchar(128)check(status in('small','medium','large'))'行必须替换为“ status varchar(128)check(状态输入(“已完成”,“ cancelled_by_driver”,“ cancelled_by_client”))。”

此外,在删除具有相同名称“ trips”的现有表之后,现在可以创建表。表重复导致了问题。

0 个答案:

没有答案