A. ORACLE裡面動態的添加欄位,如果存在就不添加,如果不存在就添加。sql語句怎麼寫
declare
p_table_namevarchar2(30);
p_column_namevarchar2(30);
p_data_typevarchar2(30);
p_cntnumber;
p_sqlvarchar2(4000);
begin
p_table_name:='';
p_column_name:='';
selectcount(1)intop_cntfromuser_tab_colswherea.table_name=p_table_nameanda.column_name=p_column_name;
ifp_cnt=0then
p_sql:='altertable'||p_table_name||'add'||p_column_name||''||p_data_type;
executeimmediatep_sql;
endif;
end;
沒測試,不過基本應該可以
B. 如果一個表不存在則創建一個表的SQL語句怎麼寫
ifnotexists(='u'
andname='表名'
)
begin
/*建表sql腳本*/
createtable[表名]
(
/*列信息*/
)
end
如果是sqlserver腳本,請試一下上面的腳本。
C. 請教mysql一個sql語句,存在則更新,不存在則插入
使用replace into,該語句是替換已經存在的語句,如果有則替換,沒有就是添加。注意該語句是覆蓋添加,慎用
D. 用一條sql語句實現:存在則什麼都不幹,不存在,則插入
1、首先准備兩個數據表,如下圖所示,結構需要一樣。
E. sql語句如果數據不存在就插入存在就不插入
如果你插入的數據在資料庫中已經存在,資料庫會根據實體完整性拒絕你插入相同的數據
F. sql:判斷是否存在相同記錄,如果存在則改寫,不存在則添加
可以先用
select count(date) into 變數名 from 表名 where date ='2009-4-13'
取date為'2009-4-13'的記錄行數,如果為0則用insert語句,如果大於0,則用update語句
只用一條sql語句是出不來的
G. mysql創建觸發器之前檢查是否存在不存在再創建,存在就不創建的sql語句是什麼
-- 判斷要創建的存儲過程名是否存在
if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[存儲過程名]') and OBJECTPROPERTY(id, N'IsProcere')= 1)
-- 刪除存儲過程
drop procere [dbo].[存儲過程名]
GO
H. sql判斷欄位是否存在 如果存在,讀取值;如果不存在,添加值
ps:一句實習不了!
declare@account_idint
ifexists(selectaccount_idfromaccountwherecard_id='12345'ANDcurrency='CNY')
begin
select@account_id=account_idfromaccountwherecard_id='12345'ANDcurrency='CNY'
end
else
begin
insertintoaccount(card_id,currency)values('12345','CNY')
select@account_id=SCOPE_IDENTITY()
end
-- @account_id 返回值
I. sqll語句 insert 存在就不插入,不存在則插入,怎麼寫
if not exists (select * from TABLE_NAME where COLUMN_NAME=value )
用exists去判斷
假定判斷的列是:COLUMN_NAME
insert into TABLE_NAME (COLUMN_NAME1,COLUMN_NAME2)
select COLUMN_NAME1,COLUMN_NAME2 from TABLE_NAME where COLUMN_NAME not in (select COLUMN_NAME from TABLE_NAME )
使用 not in ,就是COLUMN_NAME不在 TABLE_NAME 的COLUMN_NAME中,執行insert into
J. 用sql語句更新一條記錄,如果不存在就插入,怎麼寫
PLSQL 的寫法:
begin
update tablename
set xxx=values;
exception
when no_data_found then
insert into tablename
valuse();
end ;