Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 SQL Server:列具有不同数据类型时的组合主键问题_Sql Server 2012 - Fatal编程技术网

Sql server 2012 SQL Server:列具有不同数据类型时的组合主键问题

Sql server 2012 SQL Server:列具有不同数据类型时的组合主键问题,sql-server-2012,Sql Server 2012,看到我的代码它不工作,但无法理解为什么 我试图创建具有不同数据类型的列的复合pk 当我尝试这个的时候 CREATE TABLE [dbo].[ControllerActionItems]( [ControllerName] [varchar](50) NULL, [ActionName] [varchar](50) NULL, [RoleID] [int] NULL, primary key ([ControllerName], [ActionName],[Ro

看到我的代码它不工作,但无法理解为什么

我试图创建具有不同数据类型的列的复合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]
正在获取此错误消息

Msg 1709,第16级,状态1,第2行,当 表中没有文本、ntext、图像、varcharmax、nvarcharmax、, 非FILESTREAM varbinarymax、xml或大型CLR类型列

已解决的更新代码
如错误所述,您需要一个指定的列来使用TEXTIMAGE_,例如如果您使用varcharMAX而不是varchar50。然而,根据您所做的,无论如何似乎都是多余的,因为默认行为是在主目录中存储大文本值列

除非表中确实有一个大格式列,否则只需从SQL语句中删除[PRIMARY]上的TEXTIMAGE即可。

因此,删除[PRIMARY]上的TEXTIMAGE即可
CREATE TABLE [dbo].[ControllerActionItems](
    [ControllerName] [varchar](50) NOT NULL,
    [ActionName] [varchar](50) NOT NULL,
    [RoleID] [int] NOT NULL,

    primary key ([ControllerName], [ActionName],[RoleID])
)