❶ sql批處理語句解釋
select * from reader
--查詢reader表所有數據
alter table reader--修改表 reader
add rscore int--添加列 rscore 類型為 int
update reader set rscore=20 where rid=1
update reader set rscore=510 where rid=2
update reader set rscore=4679 where rid=3
update reader set rscore=2200 where rid=4
---設置 每行rscore 的值
case... when... then
select *,[level]=case
when rscore<=100 then '一級'
when rscore<=500 then '二級'
when rscore<=1000 then '三級'
when rscore<=2000 then '四級'
when rscore<=4000 then '五級'
else '頂級'
end
from reader
--以上查詢所有數據值 並增加一列level 根據rscore的值大小進行處理
--添加讀者類型這一列
alter table reader
add rtype int
--顯示讀者類型信息,用中文顯示
select *,讀者類型=case rtype when 1 then '普通讀者'
when 2 then '會員讀者'
when 3 then '黃金讀者'
end,
等級=case when rscore<=100 then '一級'
when rscore<=500 then '二級'
when rscore<=1000 then '三級'
when rscore<=2000 then '四級'
when rscore<=4000 then '五級'
else '頂級'
end
from reader
-- 以上同理
❷ 這兩種SQL語句,那種好,好在那裡
第二種好
第二種使用游標,他將用戶查詢的結果存放到數據緩沖區,並作為與宿主語言與SQL語言之間交換信息的橋梁,這樣就直接將查詢的結果交給宿主語言的變數。這就提高了執行效率。
❸ sql中的批處理
SQL批處理:指包含一條或多條T - SQL語句的語句組,這組語句從應用程序一次性地發送到SQL server伺服器執行。編批處理程序時,最好能夠以分號結束相關語句。雖然這不資料庫強制求,但筆還強烈建議如此處理。方面這有利於提批處理程序讀性。批處理程序往往完成些比較復雜成套功能,而每條語句則完成項獨立功能。此有時個比較復雜些批處理程序其往往有百行容。此時提其讀性,最好能夠利分號進行語句語句間分隔。二未版本性。其實SQL Server資料庫設計時候,開始這方面就關不嚴。現部分標准程序編器都實現類似強制控制。根據憲梓微軟官方提供資料看,以SQL Server資料庫版本,這個規則能成個強執行規則,即必須每條語句面利分號進行分隔。此能夠跟續SQL Server資料庫版本進行,最好從現開始就采分號分隔批處理程序每條語句。
❹ 如何使用sqlcmd在批處理腳本中執行SQL
使用sqlcmd可以在批處理腳本中執行SQL。雖然這個命令的參數很多,但幸運的是,我們不需要全部理解,在這里簡要介紹以下幾個: { -U login_id [ -P password ] } | –E trusted connection }] 如果指定了-E就不需要指定用戶名密碼,當然指定了用戶名密碼就不用-E了; -S server_name [ \ instance_name ] 資料庫伺服器,如果不在本機的話必須指定; -d db_name 資料庫名字,必須的; [ -i input_file ] [ -o output_file ] sql存在文件里的話用-i,輸出到文件用-o; [ -q "cmdline query" ] [ -Q "cmdline query" and exit ] 輸入是簡單的sql,不用文件,推薦用-Q,如果你執行完sqlcmd還需要執行別的動作的話; [ -W remove trailing spaces ] 刪除多餘的空格,結果會更緊湊。 當我們在真正的腳本中執行sql時,通常需要傳入和輸出變數。 傳入變數比較簡單,如下所示: sqlcmd -d test -Q "select * from dbo.Investment where investor=$(x)" -v x='IBM' -W 這個語句從test資料庫的Investment表中選出investor等於x的所有行,注意到變數x被包含在${}中。 然後用-v定義了x的值,'IBM'。 -W確定輸出的結果不包含多餘的空格。 x的值如果沒有在sqlcmd中設定,系統會試圖從別的地方去尋找,可能的地方包括,系統環境變數,用戶環境變數,以及用在sqlcmd之前用set設定的變數值。 如果你的數據里確實包含${},那麼你並不希望進行變數的替換,使用-x選項可以禁止變數的替換。 有些時候,你還希望能獲得sql執行結果並保存到變數中。比如你們的日誌系統每天都在產生日誌文件,你要執行一個腳本來處理這些日誌文件並存到資料庫中。在處理之前,你必須讀取資料庫以確定上次處理到那一天了。你期望這樣能解決你的問題: sqlcmd -d test -Q "select ${x}=max(date) from dbo.logDates " -W 但這樣並不工作。因為sqlcmd並不提供輸出變數。 不過你可以這樣做: sqlcmd -d test -Q "declare @x nvarchar(8);select @x=max(date) from dbo.logDates;print @x; " -W 這樣你就可以得到一個乾乾凈凈的數字,而不會包含列名和其他信息。 接著你將上述結果導入到一個文件里: sqlcmd -d test -Q "declare @x nvarchar(8);select @x=max(date) from dbo.logDates;print @x; " -W 1.txt 現在到了最關鍵的一步,將文件的內容寫入到變數里: set /P myvar=<1.txt /p表明這個變數myvar的值需要用戶輸入; <1.txt表明從1.txt中讀入而不是從其他地方讀入。 這樣,我們就巧妙的把sql執行的結果寫入到變數里了。
❺ SQL批處理語句是什麼
不是的,這個在這里一兩句講不清楚的,您需要專門學習一下P/L SQL的知識,可以說是一種依託於資料庫實現的腳本語言,最大的用途就是寫資料庫函數和存儲過程。
❻ 求:SQL語言中,批處理命令go的詳細用法。
Transact-SQL 參考
GO
用信號通知 Microsoft® SQL Server™ 實用工具一批 Transact-SQL 語句的結束。
語法
GO
注釋
GO 不是 Transact-SQL 語句;而是可為 osql 和 isql 實用工具及 SQL Server 查詢分析器識別的命令。
SQL Server 實用工具將 GO 解釋為應將當前的 Transact-SQL 批處理語句發送給 SQL Server 的信號。當前批處理語句是自上一 GO 命令後輸入的所有語句,若是第一條 GO 命令,則是從特殊會話或腳本的開始處到這條 GO 命令之間的所有語句。SQL 查詢分析器和 osql 及 isql 命令提示實用工具執行 GO 命令的方式不同。有關更多信息,請參見 osql 實用工具、isql 實用工具和 SQL 查詢分析器。
GO 命令和Transact-SQL 語句不可在同一行上。但在 GO 命令行中可包含注釋。
用戶必須遵照使用批處理的規則。例如,在批處理中的第一條語句後執行任何存儲過程必須包含 EXECUTE 關鍵字。局部(用戶定義)變數的作用域限制在一個批處理中,不可在 GO 命令後引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.
-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL Server 應用程序可將多條 Transact-SQL 語句作為一個批處理發給 SQL Server 去執行。在此批處理中的語句編譯成一個執行計劃。程序員在 SQL Server 實用工具中執行特定語句,或生成 Transact-SQL 語句腳本在 SQL Server 實用工具中運行,用 GO 來標識批處理的結束。
如果基於 DB-Library、ODBC 或 OLE DB APIs 的應用程序試圖執行 GO 命令時會收到語法錯誤。SQL Server 實用工具永遠不會向伺服器發送 GO 命令。
許可權
GO 是一個不需許可權的實用工具命令。可以由任何用戶執行。
示例
下面的示例創建兩個批處理。第一個批處理只包含一條 USE pubs 語句,用於設置資料庫上下文。剩下的語句使用了一個局部變數,因此所有的局部變數聲明必須在一個批處理中。這一點可通過在最後一條引用此變數的語句之後才使用 GO 命令來做到。
USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT(*)
FROM authors
PRINT 'The number of authors as of ' +
CAST(GETDATE() AS char(20)) + ' is ' +
CAST(@NmbrAuthors AS char (10))
GO
❼ SQL語句有哪幾種類型,各類型的主要作用是什麼
1、數據操縱語言(DML):用來操縱資料庫中數據的命令。包括:select、insert、update、delete。
2、數據定義語言(DDL):用來建立資料庫、資料庫對象和定義列的命令。包括:create、alter、drop。
3、數據控制語言(DCL):用來控制資料庫組件。
(7)sql批處理語言擴展閱讀:
SQL Server的特點如下:
1、具有真正的客戶機和伺服器體系結構。
2、圖形化用戶界面,使系統管理和資料庫管理更加直觀。
3、豐富的編程介面工具,為用戶進行程序設計提供了更大的選擇餘地。
4、其完全集成,利用了NT的許多功能,如發送和接受消息等。