亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于sql 中 use go 的具體用法

關于sql 中 use go 的具體用法

Go
jeck貓 2019-03-19 10:13:40
關于sql 中 use go 的具體用法 
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

SQL腳本是一種用SQL語言寫的批處理文件(.sql),SQL腳本通??梢杂蒘QL查詢分析器來執行。
=====================================================
GO向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信號。go是把t-sql語句分批次執行。(一步成功了才會執行下一步,即一步一個GO)

語法
GO

注釋
GO 不是Transact-SQL語句;而是可為cmdsql和osql實用工具及SQL Server查詢分析器識別的命令。

SQL Server實用工具將GO解釋為應將當前的Transact-SQL批處理語句發送給SQL Server的信號。當前批處理語句是自上一GO命令后輸入的所有語句,若是第一條GO命令,則是從特殊會話或腳本的開始處到這條GO命令之間的所有語句。
GO命令和Transact-SQL語句不可在同一行上。但在GO命令行中可包含注釋。

用戶必須遵照使用批處理(.sql)的規則。
例如,在批處理(.sql)中的第一條語句后執行任何存儲過程必須包含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

=================================================
USE //改變當前操作數據庫
用法:
USE 數據庫名
例:
CREATE DATABASE XX1 --創建XX1數據庫
………………
GO
CREATE DATABASE XX2 --創建XX2數據庫
………………
GO
USE XX1 --轉到XX1數據庫
GO
………… --對XX1數據庫的操作
GO
USE XX2 --轉到XX2數據庫
GO
………… --對XX2數據庫的操作
GO

USE在存儲過程中不能直接使用
但可以這樣用:
create proc test
as
exec('use pubs select * from jobs') --或者exec(use pubs) exec sp_adduser 'xxxx'
go

--使用Exec(ute)語句配合USE來改變當前數據庫,但數據庫環境的更改只在Execute語句結束前有效,所以必須把后面的語句和Execute放到一起
exec test

 


查看完整回答
反對 回復 2019-03-23
  • 2 回答
  • 0 關注
  • 1480 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號