我试图在数据库中创建一个简单的表。
CREATE TABLE [dbo].[klanten]
(
[Klant_naam] TEXT NOT NULL PRIMARY KEY,
[Klant_adres] TEXT NULL,
[klant_gsm] TEXT NULL,
[klant_gewicht] INT NOT NULL,
[klant_lengte] INT NOT NULL,
[klant_klacht] TEXT NOT NULL
)
当我尝试更新它时,弹出以下错误。
答案 0 :(得分:0)
documentation发出警告:
将来的版本中将删除ntext,text和image数据类型 Microsoft SQL Server。避免在新的中使用这些数据类型 开发工作,并计划修改当前使用的应用程序 他们。请改用nvarchar(max),varchar(max)和varbinary(max)。
所以,试试这个:
CREATE TABLE [dbo].[klanten] (
[Klant_naam] varchar(max) NOT NULL PRIMARY KEY,
[Klant_adres] varchar(max) NULL,
[klant_gsm] varchar(max) NULL,
[klant_gewicht] INT NOT NULL,
[klant_lengte] INT NOT NULL,
[klant_klacht] varchar(max) NOT NULL
)
嗯,这也不是很有效,因为索引键的限制为900字节。如何使用代理键和合理的列长度?
CREATE TABLE [dbo].[klanten] (
Klant_Id int not null identity(1, 1) primary key,
[Klant_naam] varchar(255) NOT NULL unique,
[Klant_adres] varchar(max) NULL,
[klant_gsm] varchar(max) NULL,
[klant_gewicht] INT NOT NULL,
[klant_lengte] INT NOT NULL,
[klant_klacht] varchar(max) NOT NULL
);
答案 1 :(得分:0)
尝试更改" TEXT"数据类型为" NCHAR()"或任何其他类似的。
答案 2 :(得分:0)
尝试更新数据库时通常会发生此错误,但某些字段无法更新。例如,我在表中有5个字段:
[Id] INT IDENTITY (1, 1) NOT NULL,
[Path] NVARCHAR (MAX) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Url] NVARCHAR (MAX) NULL,
[SecureUrl] NVARCHAR (MAX) NULL
我已经工作了一段时间,并做了一些记录。其中一些在[Url]处的值为NULL。我突然决定换桌子:
[Id] INT IDENTITY (1, 1) NOT NULL,
[Path] NVARCHAR (MAX) NOT NULL,
[Name] NVARCHAR (50) NULL,
[Url] NVARCHAR (MAX) NOT NULL, //!!! HERE A PROBLEM, I ALREADY HAVE NULL RECORDS IN DATA
[SecureUrl] NVARCHAR (MAX) NULL
问题是我的数据是用旧模型制作的,它在[Url]上有NULL的记录,但在新模型中,NULL值不能在[Url]。因此,与新模型一样,旧数据也不正确。因此,我们在更新时会出现错误。