變數的多次使用之GO

2021-09-08 09:26:23 字數 1476 閱讀 4016

go:向 sql server 實用工具發出一批 transact-sql 語句結束的訊號

1、批處理

use

test

goif

object_id('

t1') is

notnull

drop

table

t1;

create

table

t1(id

intidentity(1,1) primary

key,

tt varchar(10))

declare

@vvvarchar(10

)set

@vv= n'

測試1'

insert

into t1(tt) values(@vv)go

set@vv

= n'

測試2'

insert

into t1(tt) values(@vv)

這個時候會有報錯,提示我們有變數沒有定義:

(1

行受影響)

訊息 137,級別 15,狀態 1,第 1

行必須宣告標量變數 "

@vv"。

訊息 137,級別 15,狀態 2,第 2

行必須宣告標量變數 "

@vv"。

但其實我們已經定義了的,為什麼還會有這個錯誤呢?因為go把上面的語句已經結束,下面是另外的乙個語句的開始。

我們可以嘗試把go注釋掉,如下面所示:

use

test

goif

object_id('

t1') is

notnull

drop

table

t1;

create

table

t1(id

intidentity(1,1) primary

key,

tt varchar(10))

declare

@vvvarchar(10

)set

@vv= n'

測試1'

insert

into t1(tt) values(@vv)--

goset

@vv= n'

測試2'

insert

into t1(tt) values(@vv)

這個很顯示的不會報錯,並且有查詢結果:

2、對資料進行迴圈插入操作

insert

into t1(tt) values(200)go

100

則會對t1列插入200的資料操作100次。

資料庫環境 :sql server 2008

GO語言使用之型別斷言

型別斷言,由於介面是一般型別,不知道具體型別,如果要轉成具體型別,就需要使用型別斷言 型別斷言 func typeassertion x t ok 待檢測的型別斷言 y res x.float32 if res else y1 res1 x.int32 轉成float if res1 else 1 ...

go條件變數的使用和原理

最近寫 時碰到乙個場景,需要使用 map int struct 結構來儲存task,map的key是task的id,隨時可以增減。因為的確除了看書,基本上沒使用過條件變數所以後面過了一天才想到可以用條件變數來實現。記得在某篇部落格上看到的一句話挺不錯,大概是同步語句中,條件變數的特點在於等待。一開始...

go語言使用var聲名變數

變數是為儲存特定型別的值而提供給記憶體位置的名稱。在go中宣告變數有多種語法。所以變數的本質就是一小塊記憶體,用於儲存資料,在程式執行過程中數值可以改變 使用var聲名乙個變數時,如果不賦初始值,系統會自動給其賦初始值 int 為 0,float 為 0.0,bool 為 false,string ...