1樓:四舍**入
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 資料表" (將資料表所有記錄刪除)
2樓:
insert into table_name values() 這個語句是不能做判斷的,但可以建議你下面的語法實現:
if not exists(select * from table_name where filed1 = 1 ) then
insert into table_name values(1);
或者將你要插入的資料先寫入臨時表,然後用
insert into table_nameselect * from #temp_table a left join table_name on a.filed1 = b.field1 where b.
filed1 is null
3樓:匿名使用者
if not exists(select * from t where field1=插入值)// 判斷插入值是否不存在,不存在則執行插入
begin
insert into t(field1)values(插入值)end
4樓:釗悌
方法1:把field1設定為唯一列就可以。
方法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 行受影響)
5樓:匿名使用者
merge into t t1
using (select a,b from t where t.a='1001') t2
on ( t1.a=t2.a)
when not matched theninsert (a,b) values('1001',2);
類似這種的寫法,匹配不上才讓插入進去
6樓:
如果操作頻繁,倒不如加個觸發器
create trigger [dbo].[t_trigger_feild1_ins] on [dbo].[t]
instead of insert
asdeclare @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
7樓:匿名使用者
insert into table(field1) select '你要插入的值' from table where field1 not in (select field1 from table)
如何在sql中設定插入時判斷表中是否有該資料?
8樓:匿名使用者
是這樣的,insert into...values...語句不允許和where子句一起使用的(子查詢追加insert into...
select...則可以在子查詢裡使用where子句)。要實現題主的這個需求,只能通過應程式端程式設計或在資料庫端的儲存過程裡解決。
補充回答
後來我嘗試了一下用 insert into...select..變通一下單憑sql也可以解決,我在access裡測試這個思路通過了。
由於身邊沒有mssql環境,請題主測試下列**,我想應該也是可以的
insert into tbteam_daily select
top 1 n'2011-12-2',n'3組',n'',n'23' from tbteam_daily
where not exists (select 1 from tbteam_daily
where tdate = n'2011-12-2' and teamname = n'4組');
9樓:匿名使用者
不用,其實可以這樣做
insert into tbteam_dailyselect n'2011-12-2',n'3組',n'',n'23'
where not exists (select * from tbteam_daily where tdate = n'2011-12-2' and teamname = n'4組')
這樣就行了
關於excel條件格式的,關於excel條件格式的問題
excel中條件格式的使用方法 你沒有說a1大於1200怎麼辦,如果a1大於1200,b1顯示還是1200,公式這樣設定 max 600,min 1200,ceiling a1,200 如果有把握a1不可能輸入大於1200的資料,公式可以簡化成 max 600,ceiling a1,200 if a...
兩條關於理想的名言警句有哪些,兩條關於理想的名言警句
荒草叢生 人生應該如蠟燭一樣,從頂燃到底,一直都是光明的。蕭楚女 路是腳踏出來的,歷史是人寫出來的。人的每一步行動都在書寫自己的歷史。吉鴻昌 理想如星辰 我們永不能觸到,但我們可像航海者一樣,借星光的位置而航行。史立茲 理想並不能夠被現實征服,希望的火花在黑暗的天空閃耀。巴金 一種理想,就是一種力!...
有關於勵志的名言警句(兩條),兩條關於理想的名言警句
有志者自有千計萬計,無志者只感千難萬難。我成功因為我志在成功! 少壯不努力,老大徒悲傷。長歌行 天才是百分之一的靈感加百分之九十九的汗水。愛迪生 1 人生舞臺的大幕隨時都可能拉開,關鍵是你願意表演,還是選擇躲避。2 能把在面前行走的機會抓住的人,十有 都會成功。兩條關於理想的名言警句 精銳教育 理想...