1、sql中使用DELETE 語句刪除表中的行。按條件刪除數據的基本語法是「DELETE FROM 表名稱 WHERE 列名稱 = 值」,這里以學生表舉列,學生有姓名(name)和年齡(age)兩列:
㈡ SQL游標問題,如何修改SQL語句
1、既然不是刪除,是用update的方法,那麼你的條件要加上FDeleted=0啊……不然恆存在啊
2、是不是必須要用游標1條一條來循環,如果使用語句批量處理是不是更好?
比如我舉個栗子
update a set FDeleted=1
from t_ICItem a
where exists(select * from t_ICItem where FName=a.FName and FModel=a.FModel and FItemID < a.FItemID)
update a set FDeleted=1
from t_Item a
where exists(select * from t_ICItem where FItemID = a.FItemID)
㈢ sql 語句 修改
用update 觸發器
思路:
1、小位置號改成大位置號,則兩個位置號之間的值-1(不包括更新的位置號)
如:
21 1
22 2
23 3
24 4
將22的位置號改為4,則2和4之間的位置號(不包括編號22的位置號)都減一變成:
21 1
22 4
23 2
24 3
2、大位置號改成小位置號,則兩個位置號之間的值+1(不包括更新的位置號)
如:
21 1
22 2
23 3
24 4
將24的位置號改為1,則1和4之間的位置號(不包括編號24的位置號)都加一變成:
21 2
22 3
23 4
24 1
更新出發器如下:
create TRIGGER udt_tableu
ON table
FOR update AS
declare @palceNo_i int
declare @palceNo_d int
declare @no_i varchar(10)
select @palceNo_i= 位置 from inserted
select @no_i = 編號 from inserted
select @palceNo_d= 位置 from deleted
if update(位置)
begin
if @palceNo_i> @palceNo_d
begin
update 表 set 位置=位置-1
where 位置 between @palceNo_d and @palceNo_i and 編號<>@no_i
end
else if @palceNo_i< @palceNo_d
begin
update 表 set 位置=位置+1
where 位置 between @palceNo_i and @palceNo_d and 編號<>@no_i
end
end
GO
㈣ Sql 修改語句
如果你的這個「位置」是一個欄位的話,就直接用 Update 語句更改其內容。
如果這個「位置」不是欄位,只是顯示出來的順序,那就難說了。原因是這樣的:SQL中其實沒有一個物理位置的概念,所有數據記錄的順序依賴於索引及查詢時的排序指令。
所以不要去關心數據的物理位置先後,要改變位置得從自己的數據和查詢語句上著手。
不過呢,有一個聚集索引的與數據的存放順序有關系,LZ可以查查相關資料。只是說,聚集索引會改變存放順序,但它的核心是為其他索引服務的,設置得好,整個資料庫都會受益,查詢速度飛快,設置得不好,資料庫就的響應就會變慢了,甚至拖垮系統。
㈤ sql修改語句
SQL中使用UPDATE語句修改表中的數據。
sql修改語句的寫法:【UPDATE表名稱SET列名稱=新值WHERE列名稱=某值】。
UPDATE語句不僅指定要更改的行,還指定要用作這些行中特定列的新值的表達式。
可以使用UPDATE語句更改表中的單個行、一組行或所有行。與其它數據修改語句(INSERT、MERGE和DELETE)不同,UPDATE語句還可以同時對多個表中的行進行修改。
在所有情況下,UPDATE語句的執行均為原子操作;要麼正確無誤地修改所有行,要麼不修改任何行。例如,如果當前修改的一個值的數據類型不正確,或者在新值導致違反CHECK約束時,UPDATE將失敗,並且整個操作都會回退。
UPDATE語句使用注意事項
1、使用Update語句,如果省略「Where條件」,將更新數據表內的全部記錄。
2、賦值時,注意欄位的類型。若為文本型或備注型,則欄位值兩邊要加引號,若為日期/時間型,則欄位值兩邊要加上#號(加引號也可以);若為布爾類型,則該欄位的值為True或False;若為自動編號類型,則不要給該欄位賦值。