Sql server 使用Where子句的SQL Insert
我正在尝试编写一个查询,该查询仅在表中不存在数据时插入数据。我的问题是:Sql server 使用Where子句的SQL Insert,sql-server,Sql Server,我正在尝试编写一个查询,该查询仅在表中不存在数据时插入数据。我的问题是: INSERT INTO JobTable (JobTitleName) VALUES ('PROGRAMMER') WHERE JobTitleName NOT EXISTS(SELECT JobTitleName FROM JobTable x WHERE x.JobTitleName = 'PROGRAMMER') 我在“where”子句上出错了。我相信答案很简单,我只是画了一张空白。如果有任何帮助,我们将不胜感激
INSERT INTO JobTable (JobTitleName)
VALUES ('PROGRAMMER')
WHERE JobTitleName NOT EXISTS(SELECT JobTitleName FROM
JobTable x WHERE x.JobTitleName = 'PROGRAMMER')
我在“where”子句上出错了。我相信答案很简单,我只是画了一张空白。如果有任何帮助,我们将不胜感激。使用IF语句来测试有问题的值是否存在
IF NOT EXISTS(SELECT JobTitleName
FROM JobTable x
WHERE x.JobTitleName = 'PROGRAMMER')
INSERT INTO JobTable
(JobTitleName)
VALUES
('PROGRAMMER');
使用IF语句来测试有问题的值是否存在
IF NOT EXISTS(SELECT JobTitleName
FROM JobTable x
WHERE x.JobTitleName = 'PROGRAMMER')
INSERT INTO JobTable
(JobTitleName)
VALUES
('PROGRAMMER');
使用IF语句来测试有问题的值是否存在
IF NOT EXISTS(SELECT JobTitleName
FROM JobTable x
WHERE x.JobTitleName = 'PROGRAMMER')
INSERT INTO JobTable
(JobTitleName)
VALUES
('PROGRAMMER');
使用IF语句来测试有问题的值是否存在
IF NOT EXISTS(SELECT JobTitleName
FROM JobTable x
WHERE x.JobTitleName = 'PROGRAMMER')
INSERT INTO JobTable
(JobTitleName)
VALUES
('PROGRAMMER');
不能在
insert
中使用where
子句,但可以使用查询作为insert的源,并且可以使用where
使用左联接
加入作业表
,这样,如果作业标题已存在,则可以使查询返回零记录:
insert into
JobTable (JobTitleName)
select
x.Title
from
(select 'PROGRAMMER' as JobTitleName) x
left join JobTable j on j.JobTitleName = x.JobTitleName
where
j.JobTitleName is null
不能在
insert
中使用where
子句,但可以使用查询作为insert的源,并且可以使用where
使用左联接
加入作业表
,这样,如果作业标题已存在,则可以使查询返回零记录:
insert into
JobTable (JobTitleName)
select
x.Title
from
(select 'PROGRAMMER' as JobTitleName) x
left join JobTable j on j.JobTitleName = x.JobTitleName
where
j.JobTitleName is null
不能在
insert
中使用where
子句,但可以使用查询作为insert的源,并且可以使用where
使用左联接
加入作业表
,这样,如果作业标题已存在,则可以使查询返回零记录:
insert into
JobTable (JobTitleName)
select
x.Title
from
(select 'PROGRAMMER' as JobTitleName) x
left join JobTable j on j.JobTitleName = x.JobTitleName
where
j.JobTitleName is null
不能在
insert
中使用where
子句,但可以使用查询作为insert的源,并且可以使用where
使用左联接
加入作业表
,这样,如果作业标题已存在,则可以使查询返回零记录:
insert into
JobTable (JobTitleName)
select
x.Title
from
(select 'PROGRAMMER' as JobTitleName) x
left join JobTable j on j.JobTitleName = x.JobTitleName
where
j.JobTitleName is null
您是否尝试过作业标题名不在的位置(选择…)?再看看你的查询,它真的没有意义。您想做什么?
INSERT
没有WHERE
子句(作为-您指定的行)(通过提供值或SELECT
语句)正在插入-所以不要提供不想插入的值…如果需要where子句,则需要运行完整的SELECT语句,而不要使用values关键字。编写一个包含所需记录的SELECT查询,然后将INSERT添加到上面的行中。可能会将JobTitleName作为主键。。。这样,您就不必担心复制它,因为数据库不允许您复制。您是否尝试过JobTitleName不在其中(选择…)
?再看看你的查询,它真的没有意义。您想做什么?INSERT
没有WHERE
子句(作为-您指定的行)(通过提供值或SELECT
语句)正在插入-所以不要提供不想插入的值…如果需要where子句,则需要运行完整的SELECT语句,而不要使用values关键字。编写一个包含所需记录的SELECT查询,然后将INSERT添加到上面的行中。可能会将JobTitleName作为主键。。。这样,您就不必担心复制它,因为数据库不允许您复制。您是否尝试过JobTitleName不在其中(选择…)
?再看看你的查询,它真的没有意义。您想做什么?INSERT
没有WHERE
子句(作为-您指定的行)(通过提供值或SELECT
语句)正在插入-所以不要提供不想插入的值…如果需要where子句,则需要运行完整的SELECT语句,而不要使用values关键字。编写一个包含所需记录的SELECT查询,然后将INSERT添加到上面的行中。可能会将JobTitleName作为主键。。。这样,您就不必担心复制它,因为数据库不允许您复制。您是否尝试过JobTitleName不在其中(选择…)
?再看看你的查询,它真的没有意义。您想做什么?INSERT
没有WHERE
子句(作为-您指定的行)(通过提供值或SELECT
语句)正在插入-所以不要提供不想插入的值…如果需要where子句,则需要运行完整的SELECT语句,而不要使用values关键字。编写一个包含所需记录的SELECT查询,然后将INSERT添加到上面的行中。可能会将JobTitleName作为主键。。。那你就不用担心复制了,因为数据库不会让你复制的。我就知道我在画空白。我使用:如果不存在(从CACDashboardsJobTitle x中选择JobTitleName,其中x.JobTitleName='JOE TEST')插入CacDashboardsJobTitlename(JobTitleName)值('JOE TEST'),我知道我画的是空白。我使用:如果不存在(从CACDashboardsJobTitle x中选择JobTitleName,其中x.JobTitleName='JOE TEST')插入CacDashboardsJobTitlename(JobTitleName)值('JOE TEST'),我知道我画的是空白。我使用:如果不存在(从CACDashboardsJobTitle x中选择JobTitleName,其中x.JobTitleName='JOE TEST')插入CacDashboardsJobTitlename(JobTitleName)值('JOE TEST'),我知道我画的是空白。我使用:如果不存在(从CACDashboardsJobTitle x中选择JobTitle名称,其中x.JobTitle名称='JOE TEST')插入CACDashboardsJobTitle(JobTitle名称)值('JOE TEST'))