直播中
網(wǎng)友問題原文如下:
這里有幾個關于SQL SERVER的問題想向您請教(服務器端腳本編程):
(1)如何在SQL SERVER中用SQL語句獲得當前的數(shù)據(jù)庫名稱?
(2)如何在定義一個全局變量而不是局部變量,因為我在這里定義了
一個循環(huán),在這個循環(huán)里有對一個臨時表加字段和對臨時表插入數(shù)據(jù)
的操作。但這兩個操作必須放在不同的批次里.(需要用GO語句分開)。
這時控制循環(huán)的變量參數(shù)就不起作用了,因為變量參數(shù)只能在一個
批次里起作用,到下一個批次就要重新定義了。真頭疼!能不能定義
全局變量,讓它在所有批次中都起作用?
這兩個問題,其實并不具有一定的普遍性,但是解決這兩個問題的 思路和方法 卻有一定的 普遍性,所以我專門把這兩個
問題拿出來 講一下
(1)首先 這個當前 所在 DataBase 肯定需要用到 系統(tǒng)存儲過程 這一點是 十分肯定的,
我自然想到了sp_who 執(zhí)行后,列出了當前所有的 系統(tǒng)進程的 所有信息,我一看 有 Runnable,有 Slepping 肯定應該是
runnable 了,一看 他的 spid 想起來了,有個系統(tǒng)的 全局變量@@SPID,先試一下,sp_who @@spid 哈哈 成功了
這個問題的解決之道 是 一定要熟悉 系統(tǒng)的存儲過程和系統(tǒng)全局變量,并且要善于觀察和思考
(2) 至于 第二個問題,則純粹是一種 t-sql 編程的思路問題,首先我不贊同用一個規(guī)則去判斷兩個 存儲過程,因為這不
符和 t-SQL 編程的規(guī)范,但是既然問題出來了,就要想辦法 解決,我們知道在 兩個批次里 是不可能共巷數(shù)據(jù)的,所以
我想到了 cursor 游標,最終 經(jīng)過測試,也成功了。