-
建議你寫乙個儲存過程,我寫乙個供你參考! cardno 是一種自定義資料型別! 觸發器很容易出錯。
create procedure delfixusercardno cardno
asdeclare @carno carnoselect @carno=FixCardIndexTable 中的車輛編號
其中卡號 = @cardno
從 allcardindextable中刪除其中卡號=@cardno
從 FixCardIndexTableDelete 中刪除,其中卡號=@cardno
從 FixCardEndDateTableWhere 中刪除 卡號 = @cardno
從 CardPasswordTableWhere 中刪除 卡號=@cardno
從 UserCarInfoTable 中刪除其中車牌號 = @carno
其作用:刪除固定使用者記錄,並從 AllCardIndexTable、FixCardIndexTable、FixCardEndDateTable、CardPasswordTable 和 UserCarInfoTable 表中刪除相應的記錄。
-
這裡最好老老實實寫,看看是否需要寫儲存過程。
set rs="")
sql="select as id from a,b,c where and and employeeid=1"
sql,conn,1,1
if not then
id=rs("id")
delete from a where employeeid="& id
delete from b where employeeid="& id
delete from c where employeeid="& id
end if
-
不可能使用 SQL 編寫函式或遍歷 A 的記錄集並刪除 B、C
最後刪除 A。
-
建議編寫乙個觸發器,例如同時刪除 A 中的內容和刪除 B 和 C 中的內容。
-
最好不要用這種方式,包括級聯刪除,觸發但不限於資料庫的自動處理功能,這樣做的後果是資料在後台自動更改,在我看來,資料的不可控情況是乙個極其糟糕的問題,而這樣的情況是程式編寫混亂的嚴重後果, 我認為,資料庫只是用來儲存資料的,所有的邏輯都應該與資料庫無關,資料庫的理想狀態應該是所有資料都是獨立的,所有的邏輯都應該是外部環境。
-
錯誤的想法! 這顯然是兩個 SQL 執行語句!
如果要將第一句話留錯並且第一句話未執行,則可以將 autocommit 設定為 false
然後使用回滾
-
您還可以在沒有觸發器的情況下在邏輯示意圖中設定級聯刪除。
-
刪除 t3 where 列
選擇 B。
from t2
列上的內部連線 T1 = 列。
delete t2
其中列
選擇 A。
from t1
指示通過在中間新增分號,可以一次執行兩個 SQL 語句。 您可以單擊 SQL Server 選單底部的“新建查詢”,在彈出的新視窗中執行上述語句。 不能使用通用的 SQL 語句刪除兩個表。
這與 SQL Server 的內在機制有關。
-
單個語句不能刪除多個表中的記錄。
-
jseven jy 的方法,複製 union place,將其更改為 union all on it。
即:選擇字段。
duzhi1, field4 from source tabledao ) union all(選擇 field2 作為 field1, field4 from source table) union all
選擇 field3 作為 field1, field4 from source table) 由於使用了 union,因此將合併重複項。
Union All 不會合併重複項。
-
(CopySelect 字段。
bai1, field4 from source table) union(選擇字段 du2 作為 field1, field 4 from source table) union
從源表中選擇 field3 作為 field1,field4) 我的方測試是對的...... 你再試一次 dao......
希望它能幫助你......
-
選擇 departid,name,distinct count(dbbh) 作為受監督事務的數量,distinct count(fkbh) 作為反饋的數量。
from department left join dubanon =
left join fankuion
-
首先,你的表格設計要合理,乙個專案的每一次修改都必須記錄下來,這樣查詢下降和變化率就不是很簡單了。
-
選擇 *,變化率 = (a.)商品-(從學生表中選擇商品,其中 id=學生表 a 中的商品。
-
select
max(a-表。 id)-max (表 B. id) asczfroma 表,b 表。
如果返回 0,則兩個表的最大值相同。 否則,它大於 0 或小於 0,您就知道該怎麼做。
-
使用 distinct 查詢要儲存的記錄,然後刪除具有相同票號但不刪除要儲存的記錄的行;
或者 distinct 以查詢所需的所有記錄,然後插入乙個新錶。
-
4 行變成 1 行? 如果使用 sqlserver,則可以使用乙個非常奇怪的方法:selectdistinct','+sale_itemfromsale_reportforxmlpath(''房東可以測試它,最後使用 forxmlpath(''就好了。
我上面的SQL執行結果是:,c,a,b
-
房東是怎麼做到的,我現在也有類似的問題!
-
從條件和 ID 不在的表名稱中選擇前 20 * (從條件所在的表名稱中選擇前 10 個 ID)。
效率稍低,但基本上是乙個需要實現的函式,Oracle 有實現 SQL Server 的方法,相對簡單。
對於使用游標的儲存過程來說,建立臨時表的方法並不比這更有效。
-
不知道你想要什麼樣的喲,你的ID裡面應該有排序功能,反正寫乙個通用的吧! 有些函式會有排序功能,如果你擔心排序後結果不是你想要的,你會使用最古老的方法。
我在資料庫中構建了乙個 t test 表,裡面有乙個 id 字段,超過 20 行。
create function sum10()
returns table
as return
select top 10 *
from t_test go
create function sum20()
returns table
as return
select top 20 *
from t_test go
select *
from sum20()
where id not in(select id
from sum10())
這樣就有點不方便了,因為上面沒有用到變數,那樣的話,不管你拿多少,但是我試過了,不行,我得好好研究一下,其實不用函式就可以了,用選擇嵌體應該沒問題,可以看看幫助,檢查一下頂部什麼的。
-
首先,確定表中的記錄數是否大於 20。
然後,使用游標獲取結果集 @@count>10 和 @@count<21。