关于insert into 里,带条件判断的sql语句怎么写?
比如,插入2时,不让插入,
插入3则可以插入。
这个sql语句怎么写,数据库:SQL SERVER 2005. 展开
1、方法一
IF NOT EXISTS(SELECT * FROM TABLE_NAME WHERE FILED1 = 1 ) THEN
INSERT INTO TABLE_NAME VALUES(1
2、将要插入的数据先写入临时表,然后用
INSERT INTO TABLE_NAME
SELECT * FROM #TEMP_TABLE A LEFT JOIN TABLE_NAME ON A.FILED1 = B.FIELD1 WHERE
B.FILED1 IS NULL
扩展资料:
基本语句
1、数据记录筛选:
sql="select * from 数据表 where字段名 = 字段值 order by 字段名[desc]"(按某个字段值降序排列,默认升序ASC)。
sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where字段名 in ('值1','值2','值3')"
sql="select * from 数据表 where 字段名 between 值1 and 值2"
sql="select 列名1,列名2 from 数据表 where 字段名=字段值 group by 列名1,列名2 " (group by 用来分组,并且只有出现自group by 中的列名,才允许出现在select 语句中)。
2、更新数据记录:
sql="update 数据表 set字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
3、删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
参考资料来源:百度百科-SQL语句大全
IF NOT EXISTS(SELECT * FROM TABLE_NAME WHERE FILED1 = 1 ) THEN
INSERT INTO TABLE_NAME VALUES(1);
或者将你要插入的数据先写入临时表,然后用
INSERT INTO TABLE_NAME
SELECT * FROM #TEMP_TABLE A LEFT JOIN TABLE_NAME ON A.FILED1 = B.FIELD1 WHERE B.FILED1 IS NULL
参考资料: I
方法2:如果非要用sql语句来写的话,给个例子,看能否满足楼主要求:
--语句 (@a为新值)
insert into T select @a where @a not in(select Field1 from T);
======================================
案例:
create table tt(c1 int);
insert into tt values(1);
insert into tt values(2);
--测试1
insert into tt select 4 where 4 not in(select c1 from tt);
(1 行受影响)
--测试2
insert into tt select 2 where 2 not in(select c1 from tt);
(0 行受影响)
begin
insert into T(field1)
values(插入值)
end
create trigger [dbo].[t_trigger_feild1_ins] on [dbo].[t]
instead of insert
as
declare @field1value varchar(500)
select @field1value=field1 from inserted
if not exists(select * from T where field1=@field1value)
begin
insert into T(field1) values(@field1value)
end