㈠ 在sql server中循環語句 for要怎麼使用
sql server里有循環語句,在sqlserver 資料庫中,while循環語句是最常用的語句之一,for指定次數用的很少。比如:
SQL循環語句
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
while 條件
begin
執行操作
set @i=@i+1
end
WHILE
設置重復執行 SQL 語句或語句塊的條件,只要指定的條件為真,就重復執行語句,可以使用 BREAK 和 CONTINUE 關鍵字在循環內部控制 WHILE 循環中語句的執行。
語法
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
參數
Boolean_expression
返回 TRUE 或 FALSE 的表達式。如果布爾表達式中含有 SELECT 語句,必須用圓括弧將 SELECT 語句括起來。
{sql_statement | statement_block}
Transact-SQL 語句或用語句塊定義的語句分組,若要定義語句塊,請使用控制流關鍵字 BEGIN 和 END。
BREAK
㈡ sql server 有沒有for in
在 sqlserver 資料庫中,循環語句是最常用的語句之一,下面就將為您分析SQL循環語句的例子,供您參考,希望對您有所啟迪。
SQL循環語句
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
--------------------------
while 條件
begin
執行操作
set @i=@i+1
end
WHILE
設置重復執行 SQL 語句或語句塊的條件。只要指定的條件為真,就重復執行語句。可以使用 BREAK 和 CONTINUE 關鍵字在循環內部控制 WHILE 循環中語句的執行。
語法
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
參數
Boolean_expression
返回 TRUE 或 FALSE 的表達式。如果布爾表達式中含有 SELECT 語句,必須用圓括弧將 SELECT 語句括起來。
{sql_statement | statement_block}
Transact-SQL 語句或用語句塊定義的語句分組。若要定義語句塊,請使用控制流關鍵字 BEGIN 和 END。
BREAK
㈢ sql 後面跟 for update 什麼意思
這是plsql中特有的,用於修改非批量的數據。
執行完sql語句後,點紅框中的鎖的圖標,就可以修改數據了
㈣ 如何使用for循環更新sql 語句
CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userId varchar(50)
DECLARE @count int
SET @count = 0
SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'
exec UserService_RemoveUserByUserId @userId
SET @count = @count -1
END
END
說明:
1、此存儲過程在SQL SERVER 2005上測試通過,值得注意的是,循環體中,語句是使用BEGIN……END包括的,而不是網路上常說的WHILE ……END WHILE結構,其他的循環語句,如LOOP ……UNTIL……END LOOP也不能通過編譯,也許是版本的問題,但在SQL SERVER2005中,循環體使用BEGIN……END就可以,而不能使用網路上常說的WHILE ……END WHILE結構。
2、循環體中 UserService_RemoveUserByUserId 是一個存儲過程的名稱,@userId為該存儲過程的參數,如果有多個參數,使用「,」分開就可以了,這也是存儲過程調用另一個存儲過程的一種方法。
㈤ sql server 觸發器 中 for 怎麼使用
其實MS-SQL只有兩種觸發器
for 觸發器,執行後觸發器
也可以寫成:for after 只不過after可寫可不寫,一般省略掉了
在用戶執行數據操作之後,觸發器觸發,執行觸發器代碼
如:
表1(ID,NAME)
表2(ID,NAME)
當用戶插入表1數據後,表2也被插入相同的數據:
代碼如下:
create trigger Mytr
on 表1
for insert
as
insert into 表2 select * from inserted
還有instead of 執行前觸發器
在用戶執行數據操作數據之前,觸發器觸發,執行觸發器代碼,不執行用戶的操作
根據這個特性,instead of 觸發器可以為視圖添加數據操作的功能
如:
表:
表1(ID,NAME) 表2(ID,DATE)
視圖 :
DATA(表1.ID,表1.NAME,表2.DATE)
為DATA視圖添加insert操作:代碼如下
create triger trgName
on DATA
instead of insert
as
begin
insert into 表1 select ID,NAME from inserted
insert into 表2 select ID,DATE from inserted
end
㈥ 如何將動態sql應用到for loop循環中
在你想跳出for循環的地方,用break來跳出。break只能跳出其所在的循環;
1)
for (......) //循環1
{
for (......) //循環2
{
if (condition)
break; // beak跳出循環2,下一條將要運行的語句是 printf("loop 1\n");
}
printf("loop 1\n");
}
㈦ sql中for 和where區別
暈呀,不知道你想用for做啥
where是條件
這個語句的意思是:查詢lsb表中的所有以平均價小於500的信息
㈧ mysql sql中流程式控制制有for循環嗎
MySQL不支持FOR loops循環。
只有LOOP循環:
[begin_label:] LOOP
statement_list
END LOOP [end_label]
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
label1: LOOP
SET p1 = p1 + 1;
IF p1 < 10 THEN
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
SET @x = p1;
END;
LOOP實現了一個簡單的循環結構,允許重復執行語句列表,該列表由一個或多個語句組成,每個語句以分號(;)分隔符結束。 循環中的語句將重復執行,直到循環終止。 一般情況,通過LEAVE終止循環。 在函數中,也可以使用RETURN,它完全退出函數,也同時終止循環。
(8)sqlfor擴展閱讀
mysql流程式控制制結構:
順序結構:程序從上往下依次執行,
分支結構:程序從兩條或多條路徑中選中一條去執行,
循環結構:程序在滿足一定條件的基礎上,重復執行一段代碼。
分支結構
1、if函數
功能:實現簡單的雙分支
語法:
if(表達式1,表達式2,表達式3)
執行順序:
如果表達式1成立,則if函數返回表達式2的值,否則返回表達式3的值
應用:任何地方(在begin end中或外面都可以)
2、case結構
情況1:類似於java中的switch語句,一般用於實現等值判斷
語法:
CASE 變數|表達式|欄位
WHEN 要判斷的值 THEN 返回的值1或語句1;
WHEN 要判斷的值 THEN 返回的值2或語句2;
...
ELSE 要返回的值n或語句n;
END CASE;
情況2:類似於java中的多重IF語句,一般用於實現區間判斷
語法;
CASE
WHEN 要判斷的條件1 THEN 返回的值1或語句1;
WHEN 要判斷的條件2 THEN 返回的值2或語句2;
...
ELSE 要返回的值n或語句n;
END CASE;
㈨ sql語句中for子句用來表示查詢的條件
for 在VF中是屬於循環條件,而SELECT-SQL語句是查詢語言,既然是查詢語言就不需要用循環條件加以查詢,所以是對的!
㈩ SQL 中「FOR 」怎麼用
FOR在SQL中只是個關鍵字,不是一個完整的命令,它在多個語句中出現。
例如一樓說提的 FOR XML
還可以用在游標定義和觸發器定義等語句中。
定義游標:
declare nameCursor cursor for select name from users
...