【发布时间】:2017-11-18 23:25:35
【问题描述】:
我需要使用由 Job_Title 和 Job_Begin 组成的复合主键将此表插入 SQL 管理 Studio。问题是,这两列都有 2 行它们为 NULL。复合主键在纸上处理了这一点,但程序不会让我有一个接受 NULL 值的主键,即使有复合主键也是如此。我该如何解决这个问题?到目前为止,该表的代码如下。请注意,它现在不起作用。只需将 job_title 和 job_begin 的“NOT NULL”更改为“NULL”,程序就不允许我将这些列定义为主键。
CREATE TABLE [dbo].[Jobs]
(
[job_title] VARCHAR(255) NOT NULL ,
[job_begin] VARCHAR(255) NOT NULL ,
[proj_no] VARCHAR(255) NOT NULL REFERENCES Projects (proj_no),
[emp_no] FLOAT NOT NULL REFERENCES Employees (emp_no),
PRIMARY KEY([job_title], [job_begin])
);
GO
INSERT INTO [dbo].[Jobs]([job_title], [job_begin], [proj_no], [emp_no])
VALUES('Driver', '2015-06-01', 'p2', '18316'),
(NULL, '2015-08-01', 'p1', '28559'),
('Engineer', '2016-02-01', 'p2', '28559'),
('Analyst', '2015-10-15', 'p3', '2581'),
('Manager', '2015-04-15', 'p1', '9031'),
('Engineer', '2014-11-15', 'p3', '9031'),
('Engineer', '2015-01-04', 'p1', '29346'),
(NULL, '2014-12-15', 'p2', '29346'),
('Analyst', '2015-09-25', 'p11', '30606'),
('Programmer', NULL, 'p20', '30606'),
('Analyst', '2014-10-01', 'p1', '10102'),
('Manager', '2012-01-01', 'p3', '10102'),
('Engineer', '2015-02-15', 'p2', '25348'),
('QA', NULL, 'p11', '5500'),
('Programmer', '2016-11-09', 'p14', '5500'),
('QA', '2016-03-22', 'p2', '5500'),
('Manager', '2013-01-18', 'p20', '5500');
【问题讨论】:
-
为什么不用空格?
标签: sql sql-server null