2008年3月3日 星期一

exists 範例使用

print '建範例表 #tmp1'
select * into #tmp1
from (
select '1' no,'A' type,'66' a1,'88' a2,'55' a3
union select '2','B','77','88','77'
union select '3','C','88','78','65'
union select '4','A','66','50','56'
union select '5','C','77','78','67'
) a
go
print '顯示 #tmp1 '
select * from #tmp1

go
------------------------------------------------------------------------
-- 1.想要 增加一個 no 但又不想有重複的 no 在資料表內(沒有使用table的方式)
------------------------------------------------------------------------
print 'exists 範例 MSSQL'
print '1.想要 增加一個 no 但又不想有重複的 no 在資料表內'
declare @no varchar(2) --變數使用
select @no ='6' -- <<--可以調整 @no 來試試

insert into #tmp1( no, type, a1, a2, a3 )
select @no,'D','77','88','77' -- <<-- 要增加的列(這是沒有使用table的方式)
where not exists (
select * from #tmp1 where no=@no
)
go

------------------------------------------------------------------------
print '顯示 #tmp1 看看 會可到 加了一筆 6 的資料,但之後再執行上面哪段並不會再多加一次 6 的資料'
select * from #tmp1

go
------------------------------------------------------------------------
-- 2.想要 增加一個 no 但又不想有重複的 no 在資料表內(使用table的方式)
------------------------------------------------------------------------
print '2.想要 增加一個 no 但又不想有重複的 no 在資料表內'
declare @no varchar(2) --變數使用
select @no ='7' -- <<--可以調整 @no 來試試

insert into #tmp1( no, type, a1, a2, a3 )
select top 1 @no,'D','77','88','77' -- <<-- 要增加的列(這是使用table的方式)
from #tmp1
where not exists (
select * from #tmp1 where no=@no
)
go

------------------------------------------------------------------------
print '顯示 #tmp1 看看 會可到 加了一筆 6 的資料,但之後再執行上面哪段並不會再多加一次 6 的資料'
select * from #tmp1

go

沒有留言: