- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两台MSSQL Server,一台是SQL Server 2016,一台是SQL Server 2017。
在 SQL Server 2016 上,当我运行这段代码时:
ALTER TABLE [FSFIELDLABEL] ALTER COLUMN [VALIDATION_CODE] NVARCHAR(30) NOT NULL;
然后我得到预期的错误:
Msg 5074, Level 16, State 1, Line 3
The object 'FS_FIELDLABEL_PK' is dependent on column 'VALIDATION_CODE'.
Msg 4922, Level 16, State 9, Line 3
ALTER TABLE ALTER COLUMN VALIDATION_CODE failed because one or more objects access this column.
但是,当我在 SQL Server 2017 上运行相同的命令时,我没有收到错误。我已经检查过,两个数据库上都存在相同的主键,一个在 2016 年的服务器上,一个在 2017 年的服务器上。
我可以查看哪些用户权限或数据库设置来尝试确定这两个服务器行为不同的原因? 2017 服务器是我们的开发人员测试的对象,因此当他们测试在 2017 服务器上“有效”但在 2016 服务器上失败的代码时,我们真的搞砸了。
2017年“无错误”表的SQL创建
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[FSFIELDLABEL](
[LANGUAGE_CODE] [nvarchar](20) NOT NULL,
[VALIDATION_CODE] [nvarchar](30) NOT NULL,
[DATA_NAME] [nvarchar](32) NOT NULL,
[RECFMT_CODE] [nvarchar](4) NOT NULL,
[LINE_ID] [smallint] NOT NULL,
[LABEL] [nvarchar](500) NULL,
[FORMAT_CODE] [nvarchar](20) NULL,
[VERSION] [nvarchar](10) NULL,
[FS_SYS_ROWID] [int] NULL,
[TOOLTIP] [nvarchar](512) NULL,
[DISPLAY_TOOLTIP] [smallint] NOT NULL,
CONSTRAINT [FS_FIELDLABEL_PK] PRIMARY KEY CLUSTERED
(
[LANGUAGE_CODE] ASC,
[VALIDATION_CODE] ASC,
[DATA_NAME] ASC,
[RECFMT_CODE] ASC,
[LINE_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[FSFIELDLABEL] ADD DEFAULT ('A') FOR [RECFMT_CODE]
GO
ALTER TABLE [dbo].[FSFIELDLABEL] ADD DEFAULT ((0)) FOR [LINE_ID]
GO
ALTER TABLE [dbo].[FSFIELDLABEL] ADD DEFAULT (' ') FOR [LABEL]
GO
ALTER TABLE [dbo].[FSFIELDLABEL] ADD DEFAULT ((1)) FOR [DISPLAY_TOOLTIP]
GO
为 2016 年“非工作”服务器创建的 SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[FSFIELDLABEL](
[LANGUAGE_CODE] [nvarchar](20) NOT NULL,
[VALIDATION_CODE] [nvarchar](20) NOT NULL,
[DATA_NAME] [nvarchar](32) NOT NULL,
[RECFMT_CODE] [nvarchar](4) NOT NULL CONSTRAINT [DF__FSFIELDLA__RECFM__63F8CA06] DEFAULT ('A'),
[LINE_ID] [smallint] NOT NULL CONSTRAINT [DF__FSFIELDLA__LINE___64ECEE3F] DEFAULT ((0)),
[LABEL] [nvarchar](500) NULL CONSTRAINT [DF__FSFIELDLA__LABEL__65E11278] DEFAULT (' '),
[FORMAT_CODE] [nvarchar](20) NULL,
[VERSION] [nvarchar](10) NULL,
[FS_SYS_ROWID] [int] NULL,
[TOOLTIP] [nvarchar](512) NULL,
[DISPLAY_TOOLTIP] [smallint] NOT NULL CONSTRAINT [DF__FSFIELDLA__DISPL__2DA7A64D] DEFAULT ((1)),
CONSTRAINT [FS_FIELDLABEL_PK] PRIMARY KEY CLUSTERED
(
[LANGUAGE_CODE] ASC,
[VALIDATION_CODE] ASC,
[DATA_NAME] ASC,
[RECFMT_CODE] ASC,
[LINE_ID] ASC
)WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
最佳答案
也许,您的列在 SQL Server 2016 中有值。另一方面,在 SQL 2017 中,您的列没有值。
您可以删除 FS_FIELDLABEL_PK
并更改您的数据类型,然后再次添加您的约束。
关于sql - 仅在一台服务器上更改作为主键一方的字段时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57255873/
我在右侧有一个主 div 和一个侧边栏(用于导航/过滤器)。主 div 用于显示日志文件,在任何情况下都不应写入右侧栏。 问题:当出现没有空格的很长的消息(例如很长的文件路径)时,它将写入我的右侧栏。
我想根据内部从 TableView 的高度动态设置主 TableView 的行高。实现这一目标的最佳方法是什么? 最佳答案 尝试使用 UITableViewAutomaticDimension 动态设
我正在尝试为 GridLayout 调用 findviewbyid,但无论我放置在哪里,它都会返回 null。在设置 contentView 并膨胀 ViewStub 后,我将其称为 onCreate
对于一个巨大的 myisam 表(超过 1B 行),我有 2 个唯一变量,其中一个有 18 个数字,另一个有 10 个拉丁字符。 我应该选择哪一个作为主键? 如果是数字;小数还是大整数? 它们都不能帮
我有一个包含 19 行的用户表(第一行是 admin)。我需要添加更多内容,因此我有另一个数据库,其中的表有超过 1,400,000 个用户。 我的表有一个“user_id”作为主键,INT(11),
我是一名优秀的程序员,十分优秀!