SQL Server,无法在主键字段中插入空值?

2024-03-26

我已经准备好在这件事上抓狂了。我对 MS SQL 还很陌生,还没有在任何地方看到过类似的帖子。

当我尝试做这样的声明时:

INSERT INTO qcRawMatTestCharacteristic 
VALUES(NULL, 1,1,1,1,1,1,1,'','','', GETDATE(), 1)

我得到以下信息:

无法将 NULL 值插入 列“iRawMatTestCharacteristicId”, 桌子 'Intranet.dbo.qcRawMatTestCharacteristic'; 列不允许为空。插入 失败。

我理解该错误,但空值适用于具有 int 数据类型的主字段。

有任何想法吗!?


主键位于any关系数据库不允许为 NULL - 这是主键的主要基本特征之一。

See: SQL 设计:如何选择主键 http://www.sqlmag.com/article/systems-administrator/sql-by-design-how-to-choose-a-primary-key.aspx

永不为空
主键值不能为空,也不能做任何事情 使主键为空。这是 不可违反的关系规则 ANSI 支持的模型, 的 关系数据库管理系统 (RDBMS) 设计和 SQL Server。

UPDATE:好的,所以您需要在 SQL Server 中使用“自动增量”主键。

您需要在 CREATE TABLE 语句中将其定义为 INT IDENTITY:

 CREATE TABLE dbo.YourTable(ID INT IDENTITY, col1 INT, ..., colN INT)

然后,当您执行 INSERT 时,您需要显式指定要插入的列,但不要在该列表中指定“ID”列 - 然后 SQL Server 将自动查找正确的值:

 INSERT INTO dbo.YourTable(col1, col2, ..., colN) -- anything **except** `ID`      
 VALUES(va1l, val2, ..., valN)

如果您想在创建表后执行此操作,可以在 SQL Server Management Studio 的表设计器中执行此操作:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server,无法在主键字段中插入空值? 的相关文章

  • 如何搜索包含表情符号的文本?

    我们有一个 MySQL InnoDB 表 带有一个文本字段COLLATE utf8mb4 unicode ci 我需要搜索包含任何表情符号字符的行 我搜索了相当多的问题 但人们似乎有一个他们正在搜索的表情符号列表 我实际上正在寻找一种可以找
  • 按任意顺序对 SQL 行输出进行排序?

    因此 在我的数据库中 我存储乐器名称 以及各种其他属性 比方说id是主键 并且name是唯一的密钥 在 PHP 脚本中 我按仪器类别选择项目 如下所示 name mysql real escape string POST name row
  • C# 中的多个 SQL 查询将变量作为列返回

    我正在开展一个创建注册系统的学校项目 我选择的数据库方法是使用 T SQL 因为它是我已经熟悉的东西 我正在使用下面的代码来查询数据库 public void button3 Click object sender EventArgs e
  • 标签系统:Toxi 解决方案问题

    我对标签数据库模式的 Toxi 解决方案感到有点困惑 我正在开发一个系统 用户可以向该系统提交项目 并且这些项目可以具有与其关联的标签 在阅读了 tagchemas 后 我发现 Toxi 解决方案最适合我的需求 但是 我不完全确定我的计划是
  • R 中的 sqlSave 创建数据帧并将其保存到 SQL 表

    您好 我正在使用 R 将数据框保存到 DB2 SQL 表中 我似乎能够创建表骨架 但无法将数据附加到表中 gt df lt read csv dat csv 其中 dat csv 是没有标题的 csv 只有两列中的原始数据 然后我创建表 g
  • 在 SSIS 中插入新记录之前如何清空目标表?

    我使用 SSIS 生成和转换新数据 以便以后在新系统中使用 每次运行 SSIS 包时我都会遇到问题 它不断将新记录插入到我的目标表中 如何先清空目标表 OLE DB Destination 然后插入新生成的记录 目前此问题的解决方法是执行d
  • 如何使用 ORACLE SQL 从 XML 中单独提取可重复的 json 节点值?

    我有以下 XML 我想提取 json 参数 serviceNumber 的值分别地我尝试使用 EXTRACT 函数 但我得到了连接的结果 但我希望将它们分开
  • 从函数调用动态 SQL

    我正在编写一个返回表的函数 有两个参数传递给该函数 并构建并执行查询并将其插入到返回的表中 但是我收到这个错误 只能从函数内执行函数和一些扩展存储过程 我不想使用存储过程 因为这是一个简单的实用函数 有谁知道这是否可以做到 我的函数编码如下
  • T-SQL 跳过获取存储过程

    我在这个网站上似乎运气不太好 但我仍然是个乐观主义者 我会继续努力 我有两个表 期刊和文章类别 使用此查询连接 SELECT Journals JournalId Journals Year Journals Title ArticleCa
  • 获取标签包含 GROUP_CONCAT 字段的所有文章

    我有一张桌子articles 其他tags 第三个称为article tags 我想生成一个页面 其中列出特定标签的所有文章 我的查询如下所示 SELECT headline GROUP CONCAT tags tag name AS al
  • 实体框架 LINQ To Entities 生成奇怪的慢速 SQLWhere 子句

    我需要理解这一点 EF5 0 和 EF6 在 TSQL 代码生成方面存在很大差异 在我的代码中 这是我的 LINQ 语句 var qry2 context viw overview 1 Where i gt i article EAN17
  • 查找分区内最大的连续数字组

    我有以下按player id 和match date 排序的数据 我想找出连续运行次数最多的记录组 从2014 04 03到2014 04 12连续3次运行4次 player id match date runs 1 2014 04 01
  • BigQuery 中的 EXP() 返回浮点错误

    我有以下查询 SELECT EXP col FROM project dataset tablename Where col is FLOAT 但是 我收到此错误 Error Floating point error in function
  • 如何将 FOR AUTO XML 结果插入表中?

    我已经使用从表中检索了值 select from tableABC for xml auto elements 现在 有这个精确的表tableABC在另一台服务器上 我需要将这些检索到的值插入其中 如何实现这一目标 测试表及数据 creat
  • 输出参数有什么问题?

    在 SQL 和 C 中 我从来都不太喜欢输出参数 我也从未在 VB6 中通过 ByRef 传递参数 依靠副作用来完成某件事只会让我烦恼 我知道它们是一种解决无法从函数返回多个结果的方法 但 SQL 中的行集或 C 和 VB 中的复杂数据类型
  • 课程完成时更新外部数据库

    我的场景 Moodle 中的用户完成了一门课程 一旦发生这种情况 我想更新外部数据库 我的理解是 每次运行 cron 作业时都会触发 course completed 事件 使用一些简单值 例如已完成课程的用户名 ID 课程 ID 以及完成
  • CommandBehavior.SequentialAccess 是否有任何性能提升?

    我意识到我总是按照索引返回的顺序读取字段 使用常量 所以据我所知 我的代码已经与 CommandBehavior SequentialAccess 兼容 如果我打开它会有什么好处吗 DataReader 已经是只向前 只读 这才是真正的性能
  • 为什么sql表名中通常使用下划线而不是驼峰式大小写[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Athena date_parse 用于具有可选毫秒字段的日期

    我在 S3 中有日期 使用它创建了 Athena 表 我在 S3 中有一些 json 格式的日期条目 在运行查询时 Athena 不接受这些条目作为日期或时间戳 使用 AWS Athena 它使用 Prestodb 作为查询引擎 示例 js
  • Hibernate Query在系统中运行缓慢,但直接运行时速度很快

    我遇到了与本周播客中类似的问题 我们有一个使用 Hibernate 和 Sql Server 2005 的 Java 应用程序 Hibernate 正在为我们生成一个查询 该查询需要近 20 分钟才能完成 如果我们使用 show sql 进

随机推荐

  • 如何在 macOS 上的 Sublime Text 中在同一窗口中打开文件和文件夹?

    如果我打开 foo txt然后打开 baz bar txt从终端 Sublime Text 总是打开 2 个不同的窗口 打开所有这些不同的窗户真是令人烦恼 我尝试过更改 ST 的一些设置 但似乎没有任何办法可以解决这个问题 有没有办法让所有
  • 插件包的 Xcode 单元测试

    我想将单元测试添加到我的应用程序中 不幸的是 目前大部分功能都位于插件中 我的插件基础设施由一个带有插件基类和一些共享帮助器类和资源的框架组成 现在我想添加一个能够测试我的插件的单元测试 我想创建一个 测试 应用程序来加载该包并将所有调用重
  • Ruby BCrypt 哈希比较

    我正在尝试使用 Sinatra 和 BCrypt 实现看似非常简单的身份验证方法 但显然我错过了一些东西 用户预先分配了一个临时密码 该密码以明文形式存储在数据库中 我根据临时密码进行身份验证 然后创建 salt 和 password ha
  • 使用 strtotime() 从字符串(各种时间单位)中减去间隔;

    我正在创建一个票务系统 我已经存储了票证创建日期和当前日期之间的间隔 每张票证都有一个存储为字符串的解决时间限制 targetTime 15 分钟 4 小时等 我试图通过从时间限制字符串中减去间隔来计算剩余时间 我尝试在 targetTim
  • 将 NULL 值插入双精度数据类型 MySQL Python

    我有一张桌子 这是创建语句 CREATE TABLE runsettings runnumber mediumint 9 NOT NULL equipment varchar 45 NOT NULL wafer varchar 45 NOT
  • 将 Unix 纪元时间戳转换为 JavaScript 日期时间戳

    我有一个带有 Unix 纪元时间戳的数据库 我想在 Highcharts 图表中绘制这些值 这需要 JavaScript 日期时间戳 自 1970 年 1 月 1 日以来的毫秒数 数据库数组当前如下所示 data 1519395624 10
  • 无法在 Anko 中调用 StartActivityForResult

    我对 android 还很陌生 我正在尝试用 kotlin 来学习它 在这段代码中 mHelp setOnClickListener context startActivity
  • python中连接数据点的线的箱线图

    我试图根据与点相关的特定关系来连接线 在此示例中 线条将连接玩家所在的球场 我可以创建基本结构 但还没有找到一种相当简单的方法来创建此附加功能 import pandas as pd import numpy as np import ma
  • HTML5 Web 应用程序中 OAuth2 的本地存储与 cookie

    我目前正在尝试使用 OAuth2 来开发一个完全用 JavaScript 构建的移动应用程序 该应用程序与 CakePHP API 进行通信 查看以下代码以了解我的应用程序当前的外观 请注意 这是一个实验 因此代码混乱 区域缺乏结构等 va
  • UnsafeQueueUserWorkItem 以及“不传播调用堆栈”到底是什么意思?

    我正在阅读和学习ThreadScheduler以及有关任务的文章并遇到了该功能ThreadPool UnsafeQueueUserWorkItem用于其中之一MSDN 示例 http msdn microsoft com en us lib
  • 使用 C# 在 XML 中进行 SAML 断言

    这是我面临的问题 需要一些帮助 指导 我已经从我的引擎生成了一条 XML 消息 需要将其解析为服务 为此 我必须将该消息更改为 SOAP 消息并在其上插入 SAML 令牌 我正在尝试使用 C 代码执行此操作 以下是我生成的输入消息及其预期输
  • 如何在 Visual Studio Code 中显示函数的使用?

    我使用 Pycharm 时可以按 ctrl 单击函数定义并查看用途 VSC 中有类似的吗 You can use Find All References Shift F12 to get a better view of usage htt
  • 用连字符替换所有非字母和数字的字符[重复]

    这个问题在这里已经有答案了 我面临着 URL 的问题 我希望能够转换可以包含任何内容的标题 并去掉所有特殊字符 这样它们只有字母和数字 当然我想用连字符替换空格 这将如何完成 我听说过很多关于正则表达式 regex 的使用 这应该可以满足您
  • R - 绘制缺少 NA 值的线

    我有以下 data frame 子集 Time A B C 2016 10 07 06 16 46 NA NA 41 2016 10 07 06 26 27 40 39 42 2016 10 07 06 38 23 NA 40 NA 201
  • 为什么 Django 为代理模型创建迁移文件?

    我刚刚创建了一个代理模型 https docs djangoproject com en 1 9 topics db models proxy models并惊讶地发现manage py makemigrations创建一个新的迁移文件mi
  • 问:在场景滚动时禁用“放大/缩小”

    我们使用基于 Roomle Web SDK 的基础存储库 Roomle UI 我们目前正在对此进行定制并将其相应地集成到我们的网站中 我们想通过滚动禁用自动 放大 它会中断预期的用户流程 不幸的是 我们还没有找到一种方法来实现这一点 而不保
  • c++11 中的 库可移植吗?

    c 11 中的库可移植吗 我避免使用 rand 因为我听说它不可移植 你如何定义 便携 如果 便携式 的意思是 在给定相同输入的情况下将产生二进制相同的随机数序列 那么是的 rand不便携 是的 C 随机生成器 http en cppref
  • Matlab 将文件从 Windows 资源管理器拖放到图形 (gui)

    我想知道有一种方法可以从 Windows 资源管理器中拖动文件并将其放入我的 GUI 中 目标应该是获取文件路径 或文件夹路径 并能够使用我自己的加载函数加载它 我准确地说 我在 Windows 10 64 位中使用 Matlab 2015
  • 如何使用 Javascript 禁用功能键?

    我有一个页面 我需要禁用功能键 主要是 F12 开发工具 我在页面中显示了一些敏感数据 因此无论如何我都无法让用户看到 html 并获取隐藏字段 我检查了一些 javascript 它适用于除了 f1 f12 等功能键之外的几乎所有键 无论
  • SQL Server,无法在主键字段中插入空值?

    我已经准备好在这件事上抓狂了 我对 MS SQL 还很陌生 还没有在任何地方看到过类似的帖子 当我尝试做这样的声明时 INSERT INTO qcRawMatTestCharacteristic VALUES NULL 1 1 1 1 1