SQL Server执行CREATE TABLE DDL报')'附近语法错误如何解决
问题原因
你写的建表语句中 varchar(-1) 属于非法语法,SQL Server 不支持使用负数作为 varchar 类型的长度参数,这是触发语法报错的直接原因。
修复方案
- 如果业务需要存储的字符串长度不超过8000字符,将该字段声明修改为
varchar(合适的长度值),比如varchar(2000) - 如果需要存储最大长度的非Unicode字符串(最高支持2GB存储),将该字段声明修改为
varchar(MAX)
修改后的完整建表语句参考:
CREATE TABLE "auxilio_saude_v2"."Solicitacao" ( "IdSolicitacao" int NOT NULL IDENTITY(1,1), "Descricao" varchar(MAX) NOT NULL, -- 可根据业务实际需要替换MAX为具体长度值 "Estado" varchar(255) NOT NULL, "MotivoRecusa" varchar(255), "BeneficiarioDboIdVinculo" int NOT NULL, "CadastroDboIdVinculo" int NOT NULL, "CadastroData" datetime CONSTRAINT "DF_cd6a13f4e589eeff45ef3b3a8ea" DEFAULT getdate(), "InicioData" datetime CONSTRAINT "DF_4ae713eccf3d4346f40d25c8fe1" DEFAULT getdate(), "FinalData" datetime, CONSTRAINT "PK_348326c6affdf7e7d271ac6d672" PRIMARY KEY("IdSolicitacao") )
补充说明:除SQL Server外,MySQL、PostgreSQL等绝大多数关系型数据库都不支持用负数声明字符串类型的长度,不要使用这类写法。
内容的提问来源于stack exchange,提问作者v1d3rm3
相关产品推荐
相关产品推荐

