看到我的代码它无法正常工作但却无法理解为什么?
我正在尝试创建具有不同数据类型
的列的复合pk当我尝试这个时
CREATE TABLE [dbo].[ControllerActionItems](
[ControllerName] [varchar](50) NULL,
[ActionName] [varchar](50) NULL,
[RoleID] [int] NULL,
primary key ([ControllerName], [ActionName],[RoleID])
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
收到此错误消息
消息1709,级别16,状态1,行2当a时不能使用TEXTIMAGE_ON table没有text,ntext,image,varchar(max),nvarchar(max), 非FILESTREAM varbinary(max),xml或大型CLR类型列。
CREATE TABLE [dbo].[ControllerActionItems](
[ControllerName] [varchar](50) NOT NULL,
[ActionName] [varchar](50) NOT NULL,
[RoleID] [int] NOT NULL,
primary key ([ControllerName], [ActionName],[RoleID])
)
答案 0 :(得分:1)
如错误所述,您需要使用指定列之一来使用TEXTIMAGE_ON,例如,如果您使用varchar(MAX)
而不是varchar(50)
。但是,根据this other answer,您正在做的事情似乎是多余的,因为默认行为是在PRIMARY中存储大文本值列。
除非您在表中实际拥有大格式列,否则只需从SQL语句中删除TEXTIMAGE_ON [PRIMARY]
。