【问题标题】:SQL Server 2008 Create table errorSQL Server 2008 创建表错误
【发布时间】:2016-06-12 23:01:40
【问题描述】:

我试图在下面执行这个查询,但是 SQL Server 返回这个错误:

约束“TABLE”的语法定义不正确

这里查询有错误的部分

create table Vendedor
(
    Vend_idVendedor int identity,
    Vend_Nome VARCHAR(45) not null,
    Vend_CPF int not null,
    Vend_Cargo VARCHAR(15) not null,
    Vend_Salario FLOAT not null,
    Vend_Telefone INT not null,
    Vend_Celular INT not null,
    Vend_Admissao DATE not null,

    constraint PK_Vend_idVend primary key (Vend_idVendedor),

    constraint CK_Vend_CPF check(len(Vend_CPF) = 11),
    constraint CK_Vend_Tel check(len(Vend_Telefone) = 10),
    constraint CK_Vend_Cel check(len(Vend_Celular) = 11),

    constraint UQ_Vend_CPF unique(Vend_CPF),
    constraint UQ_Vend_Cel unique(Vend_Celular),

    constraint CK_Vend_Adm check(Vend_Admissao >= '2016-01-02' and Vend_Admissao <= getdate())
)

【问题讨论】:

    标签: sql-server sql-server-2008 create-table


    【解决方案1】:

    以上说法没有错。它在我的 SQL 2008 R2 Dev 上创建了一个表。

    检查上述语句中的错误。

    如果您使用 SSMS,您可以尝试在语句之前和之后添加一个批处理分隔符 (GO) 来隔离它。分号 (;) 也可能有所帮助。

    【讨论】:

    • 谢谢 Alex,现在我得到“数据库中已经有一个名为 'int' 的对象”
    • 正如我所说,错误不在您发布的代码中。如果我看不到代码,我不可能猜到错误在哪里以及错误是什么。该错误告诉我的唯一一件事是您正在尝试创建一个名为“int”的对象(SP、函数或表),并且它已经存在于数据库中。您需要发布完整的代码示例(如果它不是太大)或自己查找错误。如果您使用的是 SSMS,您应该会在错误消息旁边看到行号(它并不总是显示正确的行),如果您双击错误消息,它将带您到该行。
    • 您也可以尝试谷歌搜索错误消息以查找其含义。
    • 编辑:SQL Server 中的一个对象可以引用许多不同的东西,而不仅仅是一个 SP、函数或表
    • 谢谢,我阅读了我的指南,发现了错误,谢谢您的帮助;)
    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多