sql循環語句
❶ sql循環語句
你可以直接在查詢分析器了試一下這個語句,你具體的意思我也不太清楚,循環就要用游標了,其實也可以實現
create table a (id int,cno char(10))
insert a values(1,'999')
insert a values(2,'1000')
create table b (id int)
insert b values(1)
insert b values(3)
insert b values(5)
declare @max int
select @max=max(cast(cno as int)) + 1 from a
declare @sql nvarchar(2000)
set @sql = 'create table #temp (id int, cno int identity('+cast(@max as nvarchar) +',1)) '
set @sql = @sql + 'insert #temp select id from b where id not in(select id from a) '
set @sql = @sql + 'insert a select id,cast(cno as nvarchar) from #temp'
exec sp_executesql @sql
select * from a
drop table a,b
❷ SQL 語句簡單的循環怎麼寫啊!
你最好是把你的需要以及表結構還有一些簡單的數據貼出來
如果要循環,那就在過程或者程序塊里實現
❸ sql語句怎麼循環啊
將執行sql語句的模式改為預處理語句那種,把a設置為展位符,每次循環重新為語句預處理覆蓋展位符的值。
❹ SQL 循環語句
可以使用游標。MS SQL語句如下:
--定義一個接收數值及一個累加數值的臨時變數
DECLARE@levelINT,
@levelcountINT
SET@levelcount=0
--定義游標,表名及列名根據實際進行修改
DECLAREcus_countCURSORFOR
SELECTlevelFROMdbo.grouptemp
--打開游標
OPENcus_count
--定位到下一行。打開後未定位游標定位到首行
FETCHNEXTFROMcus_countINTO@level
--循環游標,條件為小於某個數值並且游標循環未結束。@@FETCH_STATUS=0表示游標未循環結束。
WHILE(@levelcount<100)AND(@@FETCH_STATUS=0)
BEGIN
SET@levelcount=@levelcount+@level
FETCHNEXTFROMcus_countINTO@level
END
--關閉游標
CLOSEcus_count
--釋放游標
DEALLOCATEcus_count
--數值列印出來以便調試,正式方法中可不列印
PRINT@levelcount
❺ sql 循環語句
declare @i bigint
set @i=6204220000
UPDATE W0220 SET GS1501=@i,@i=@i+1
❻ 如何用SQL循環查詢語句
oracle
:
begin
for
a
in
(select
*
from
emp)
loop
...
end
loop;
end;
❼ sql循環語句怎麼寫
示例1:
SET@i=0
WHILE@i<100
BEGIN
//具體操作...
SET@i=@i=1
END
❽ 求sql循環語句
lz是不是不理解資料庫查詢的意義
select本身就是循環的過程
直接
select A1+A2+A3 from A
就行了
--------------------------
你有什麼其它操作,很難有用查詢寫不出的事,你提出來看看
===========================
這個需要循環么?
select * into AAA from openrowset
('SQLOLEDB','server=xxx.xxx.xxx.xxx;uid=sa;pwd=xxx;database=B1'
, 'select * from AAA ')
INSERT INTO BBB select * from AAA
或者直接
INSERT INTO BBB
select * from openrowset
('SQLOLEDB','server=xxx.xxx.xxx.xxx;uid=sa;pwd=xxx;database=B1'
, 'select * from AAA ')
不就行了
需要循環么?
❾ SQL循環語句。
不 要@符號.
行不行啊你
db2裡面的申明變數 不要@符號。
❿ sql server 里有循環語句嗎 沒有請看描述
如何利用connection對象連接數據源?
用一個connnection 對象,只要指定一個connection字元串,目的是用來指定你想要聯結的數據源,然後調用open方法來建立鏈接。
通過connection string提供的信息用OPEN方法可以非常輕松的建立與數據的連接。如果你決定用connection對象進行工作,那麼你可以用它的STATE屬性。如果connection對象被打開了那麼它的返回值為adstateopen,如果不是它的返回值為adstateclosed.下面的例子是利用odbc建立與SQL的連接。
Sub ConnectionExample1()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC打開連接.
cnn.Open "Pubs", "sa", ""
' 檢查是否完成連接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
關閉connection對象
cnn.Close
End Sub
如果你只需要連接一個數據源。下面的代碼要比上面的簡單。作為選擇,你可以創建一個connection對象,在調用open方法前你可以先設置ConnectionString屬性。這種方法容許你連接一個數據源後再重新用這個對象再連接另一個數據源。
Sub ConnectionExample2()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC DSN 建立連接
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.Open
' 檢查是否與數據源建立了連接.
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'關閉connection對象
cnn.Close
End Sub
在你對CONNECTION對象建立連接前,你可以設置它的其它屬性。例如,你可以設置連接超時。
Sub ConnectionExample3()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 設置CONNECTION屬性
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.ConnectionTimeout = 30
' 打開connection 對象
cnn.Open
' 檢查是否已經連接上數據源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 關閉connection對象
cnn.Close
End Sub
ConnectionString屬性的語法結構假定數據源已經被建立或利用系統管理員的身份使用ODBC.不依靠存在的odbc數據源變得流行起來。這樣就減輕了安裝的負擔。下面的例子是一個連接SQL SERVER的可選擇性的方法,僅依靠本身存在的odbc driver
. Sub ConnectionExample4()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'利用引用ODBC DRIVER打開CONNECTION對象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' Find out if the attempt to connect worked.
'檢查是否已經建立連接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 關閉CONNECTION對象
cnn.Close
End Sub
現在ODBC DRIVER 有更廣的變化,你可以用ADO和數據源對話。不久將會有更的的OLE DB提供者與數據源建立連接。The Microsoft® OLE DB Provider for ODBC是當前ADO默認的提供者。你能用不同的提供者設置CONNECTION對象的provider屬性。
Sub ConnectionExample5()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'設置PROVIDER屬性利用OLE DB Provider for ODBC
cnn.Provider = "MSDASQL"
'用ODBC DSN打開CONNECTION對象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'檢查是否連接上數據源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'關閉CONNECTION對象
cnn.Close
End Sub
上面的代碼設置PROVIDER屬性不是必須因為ADO的默認提供者就是OLE DB PROVIDER FOR ODBC.這里只是認你知道當你用其它的OLE DB PROVIDERS時如何設置。
我如何用CONNECTION對象執行COMMAND?
CONNNETION的EXECUTE方法用來發送一個COMMAND(一個SQL指令或其它的文本信息)到數據源。如果在SQL指令中要求返回幾行記錄集,一個RECORDSET對象將會被自動的建立。
Sub ConnectionExample6()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' 引用 ODBC driver 建立連接.
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' 執行SQL 語句創立一個RECORDSET對象.
Set rs = cnn.Execute("Select * From authors")
' 顯示第一個 author.
MsgBox rs("au_fname") & " " & rs("au_lname")
' 斷開連接
rs.Close
End Sub
記住用EXECUTE返回的RECORDSET是只讀的,並且是僅向前游標。如果你需要用RECORDSET物件的更多函數,你首先要創建RECORDSET物件並設置想要設置的屬性然後用OPEN方法打開它來執行查詢和返回想要得到的游標類型.
在下面的例子中,COMMAND物件執行刪除指令,由於沒有數據集需要返回,你不需要額外的用RECORDSET物件.刪除了多少行數據?你可以通過RECORDSAFFECTED參數知道它.
Sub ConnectionExample7()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
'引用ODBC DRIVER建立連接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'向數據源發送刪除指令
cnn.Execute ("Delete From authors Where au_id = '011-01-0111'")
' 檢查有多少行數據被刪除
Set rs = cnn.Execute("Select @@rowcount")
' 顯示第一個欄位
MsgBox rs(0) & " rows deleted"
'關閉連接
rs.Close
End Sub
下面的例子,這個COMMAND通過指定的存儲過程的名字運行數據源的存儲過程.由於需要返回數據,所以你必需建立RECORDSET物件。
Sub ConnectionExample8()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' 引用ODBC DRIVER來建立連接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' 建立RECORDSET對象來運行存儲過程
Set rs = cnn.Execute("Exec byroyalty 50")
' 通過循環來顯示AUTHOR的ID
Do While Not rs.EOF
MsgBox rs("au_id")
rs.MoveNext
Loop
' 斷開連接
rs.Close
End Sub