循環插入sql語句
Ⅰ 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中用循環批量插入數據如何實現
--
create
table
CREATE
TABLE
test(col
NUMERIC)
--
insert
WITH
t1
AS
(SELECT
1
rn),
t2
AS
(SELECT
rn
FROM
t1
UNION
ALL
SELECT
t2.rn
+
t1.rn
FROM
t2,
t1
WHERE
t2.rn
<
200
)
--
200
修改為你想插入的條數
INSERT
INTO
test
SELECT
*
FROM
t2
OPTION
(MAXRECURSION
0)
Ⅲ SQL語句中怎樣循環插入規律數據啊
可以使用循環語句
while 條件
begin
執行操作
set @i=@i+1
endWHILE
設置重復執行 SQL 語句或語句塊的條件。只要指定的條件為真,就重復執行語句。可以使用 BREAK 和 CONTINUE 關鍵字在循環內部控制 WHILE 循環中語句的執行。
Ⅳ sql server 循環插入語句
--可以不用循環哦,先建好臨時表,和table201401——table201412的表
--下面的代碼是把滿足table2014%這個條件的表分組統計後插入到臨時表
execsp_MSforeachtable
@command1="insertinto#tempselect姓名,substring('?',13,6),count(日期)
from?groupby姓名",
@whereand="Ando.Namein(SelectnameFromsys.objectsWhereType='U'And
Namelike'table2014%'
)"
--當然循環也行
Declare@NameVarchar(100)
Declare@sqlVarchar(1000)
DECLARECurCURSORFOR
SelectnameFromsys.objectsWherenamelike'table2014%'
OPENCur
FETCHNEXTFROMCurINTO@Name
WHILE@@FETCH_STATUS=0
BEGIN
Set@sql='insertinto#tempselect姓名,right('''+@Name+''',6),count(日期)
from'+@Name+'groupby姓名'
Exec(@sql)
FETCHNEXTFROMCurINTO@Name
END
CLOSECur
DEALLOCATECur
select*from#temp