5 sql-server asp.net-identity .net-core asp.net-core
VS2017/aspnetcore中身份模型的schema定义了一个叫做AspNetUserLogins的表来存储外部登录信息(下面的CREATE语句)。它将主键定义为 [LoginProvider] [nvarchar] (450) 和 [ProviderKey] [nvarchar] (450) 的组合。SQL 服务器对索引键的最大大小的限制在此处指定为 900 字节。该页面上的注释特别说明
“如果表列是nchar 或nvarchar 等Unicode 数据类型,则显示的列长度为该列的存储长度。这是CREATE TABLE 语句中指定字符数的两倍。在前面的示例中,City 为定义为 nvarchar(30) 数据类型;因此,列的存储长度为 60。”
那么这个密钥不是允许大小的两倍吗?
Sql Server Management Studio 好像也是这么认为的....
警告!聚集索引的最大键长度为 900 字节。索引“PK_AspNetUserLogins”的最大长度为 1800 字节。对于某些大值组合,插入/更新操作将失败。
CREATE TABLE [dbo].[AspNetUserLogins](
[LoginProvider] [nvarchar](450) NOT NULL,
[ProviderKey] [nvarchar](450) NOT NULL,
[ProviderDisplayName] [nvarchar](max) NULL,
[UserId] [nvarchar](450) NOT NULL,
CONSTRAINT [PK_AspNetUserLogins] PRIMARY KEY CLUSTERED
(
[LoginProvider] ASC,
[ProviderKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
小智 3
看起来他们知道... issues1451
| 归档时间: |
|
| 查看次数: |
1120 次 |
| 最近记录: |