1樓:_聶永
set rs2=server.createobject("adodb.recordset")
sql="select * from book"
rs2.open sql,conn,1,3
rs2.addnew 是不是沒有它
rs2("bookid")=trim(request("bookid"))
rs2("bookname")=trim(request("bookname"))
rs2("booktype")=trim(request("booktype"))
rs2("booknum")=trim(request("booknum"))
rs2("bookpublishing")=trim(request("bookpublishing"))
rs2("bookpbutime")=trim(request("bookpbutime"))
rs2("bookmoney")=trim(request("bookmoney"))
rs2.update是不是沒有它
2樓:菜鳥沉默
看了半天,還是沒有看懂
3樓:匿名使用者
在你插入的時候,你實際上已經查詢一遍了,當然這是動態的** 網頁重新整理一遍,所以你文字框中的值被初始化了,所以改不了!!
sql語句新增資料時能否實現先查詢有無此條記錄再新增?
4樓:匿名使用者
最好分開寫,用異常來捕獲可預知錯誤是不應該的先根據條件到資料庫裡查詢,如果有就彈msg已經有該資料了,如果沒有則繼續插入
if(exist())
insertdb();
5樓:匿名使用者
sql server可以用if exists來判斷
儲存過程
if exists(select 1 from sysobjects where name='儲存過程名')
drop procedure 儲存過程名
go資料庫表
if exists(select 1 from sysobjects where name='表名')
drop table 表名
go資料庫
if exists(select 1 from sysdatabases where name='資料庫名')
drop database 資料庫名
go索引
if exists (select 1 from sysindexes where name = '索引名')
drop index 表名.索引名
go檢視
if exists (select 1 from sysindexes where name = '檢視名')
drop view 檢視名
go總結一下:
查 儲存過程、資料庫表 使用 sysobjects 表,
查 資料庫 使用 sysdatabases 表,
查 索引、檢視 使用 sysindexes 表
這些是查系統表的,那麼查普通表怎麼查?嗯
if exists(select 1 from 表名 where 條件)
[begin] --begin和end 相當於「{}」存在,把後面多句整合成一個整體
要做的操作
[end]
go ps1:if exists這個語法貌似還有其他的用法,建議去查一查,很好用很好用,用會了會上癮我會說?
ps2:這個go挺好用,像斷點,他會把前面一個go和後面一個go之間的**執行生效後才會繼續執行後面的**,比如:剛進入sql server的時候預設是進入master庫,先看看下面2段語句的結果
use bbs
create table 1go和
use bbs
gocreate table 1
go第一句 會在master建一個table1,然後進入bbs庫;第二句 會進入bbs庫 然後在bbs庫建table1表
ps2:select 1 from。。。。這裡的1主要是加快搜尋速度,這種只查詢是否存在的情況下,如果查到資料就顯示1,這樣可以大大地加快搜尋速度,查詢的結果是有多少條資料就有多少個1
6樓:
不寫儲存過程的方法就只有
先查詢出來在一個dataset表中,然後檢測dataset表的row.cout是不是大於零,if dataset.talbes(0).rows.cout > 0 then
說明些資訊已經存在
else
return
7樓:
if not exists(select * from table where id=1)
insert into table
values(......)
我試了 可以
mysql中先判斷資料是否存在,如存在則增加數量,不存在則增加一條記錄 100
8樓:匿名使用者
比如想往表中插入一條資料,如果表中沒有該條資料才插入,如果已經存在該條資料就不插入。
首先,在建立表時,將不需要重複的欄位設定為unique,然後在插入時,使用insert ignore語句。
例如:(資料庫用的是mysql5)
建立一張表用來儲存使用者:
create table user_info
(uid mediumint(10) unsigned not null auto_increment primary key,
last_name char(20) not null,
first_name char(20) not null,
unique ( last_name, first_name)
);alter table anser add unique (last_name,first_name)
插入資料:
insert ignore into user_info (last_name,first_name) values ('x','y');
這樣一來,如果表中已經存在last_name='x'且first_name='y'的資料,就不會插入,如果沒有就會插入一條新資料。
——————注意,以上是我直接複製貼上的資訊,以下為原創
然後捕捉查詢結果,如果確實已經執行了插入操作,那麼就結束sql
否則,就執行一次update操作
這樣的話,我覺得程式執行效能是較好的
9樓:滄桑的
不一定要在mysql語句中判斷。在程式裡判斷一樣。
10樓:匿名使用者
報什麼錯誤?可以貼出來?
:count
:username都是引數?
【sql語句】用sql語句新增欄位前要先判斷該欄位是否已存在嗎?如果要,怎麼寫呢?謝謝您的解答!
11樓:匿名使用者
if not exists
(select * from syscolumns where id=object_id('tablename') and name='email')
begin
alter table tablename add email varchar(30)end
12樓:流星
alter table tablename
add email varchar(30);
如何在sql中設定插入時判斷表中是否有該資料?
13樓:匿名使用者
是這樣的,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組');
14樓:匿名使用者
不用,其實可以這樣做
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組')
這樣就行了
my sql 資料庫語句 我要新增一條資料,但是要先判斷這個資料存不存在可以一句搞完麼?
15樓:折柳成萌
insert into table_name ( col_name1,col_name2,......)
select value1,value2,....
where not exists ( select 1 from table_name a where ........ )
16樓:匿名使用者
replace into 你看看 是否符合需求
sql怎麼判斷插入的值已經有了或者相同的資料就不插入呢
17樓:匿名使用者
判斷是否存在相同資料,一般使用【exists】函式判斷。
exists
指定一個子查詢,檢測行的存在。
語法exists subquery
引數subquery
是一個受限的 select 語句 (不允許有 compute 子句和 into 關鍵字)。有關更多資訊,請參見 select 中有關子查詢的討論。
結果型別
boolean
結果值如果子查詢包含行,則返回 true。
例如:表【dbo.tb_e_user】,其中列【userid】不允許重複
if exists(select 0 from dbo.tb_b_user where userid='testuserid')
begin
raiserror 50001 '使用者名稱已存在,請不要重複新增。'
endelse
begin
insert into dbo.tb_b_user (userid) values ('testuserid')end
18樓:匿名使用者
用if not exists(select 列出的欄位 from 表名 where 條件)
insert .........-----插入語句
19樓:農夫山烏龍茶
沒有簡單的方法,都insert 進去之後,在distinct 吧,看看能不能行
20樓:匿名使用者
將表設定主鍵約束,重複的值就插不進去了。插入時會報鍵值錯誤
sql查詢出的結果為查詢條件,最後進行計算批量改資料
21樓:匿名使用者
update 表名 set 成績=a.成績+b.成績 from(select 姓名,成績 from 表名 where 科目= '日語') b
inner join 表名 a on a.姓名=b.姓名where a.科目='外語'
sqlserver的話用上邊那句,其他資料庫可能寫法有變化,其他資料庫的話再說
sql判斷列是否存在,sql判斷列是否存在
2種辦法 1.根據bai系統表判斷 du列是 否zhi存在,比如oracle的daouser tab columns,sqlserver的dbo.syscolumns 然後拼sql 2.直接select select from a然後,判斷 結果集 中是版否 月各列,分別獲取權值。select fr...
sybase資料庫 如何使用sql語句查詢,資料庫容量大小和
sybase公司是世界著名的資料庫廠家,其關聯式資料庫產品sybase sql server在中國大中型企事業單位中擁有大量的使用者。針對獲取資料庫相關資訊也提供了對應的api,以便管理進行維護。一 sp spaceused 可看到資料庫空間包括日誌 對應資料庫 開啟sql advantage 對話...
如何查詢某個資料庫的某個表欄位,SQL資料庫,如何查詢資料庫內含有某一列(某欄位,如name)的所有表
2008沒用過,不懂!不過我覺得應該和2003或者2005是一樣的操作,因為他們都使用的sql語句,變化應該不是很大!select b.name 表名,a.name 欄位名 from syscolumns a join sysobjects b on a.id b.id where b.xtype ...