自動執行作業時標識列的返回值的應用

2021-04-30 19:02:22 字數 3419 閱讀 4535

--

自動執行作業時標識列的返回值的應用

/*聯機叢書說明:

-- scope_identity

、ident_current

和@@identity

是相似的函式,因為它們都返回插入到標識列中的值。

--1. ident_current

不受作用域和會話的限制,而受限於指定的表。

ident_current

返回為任何會話和作用域中的特定表所生成的值。

--2. scope_identity

和@@identity

返回在當前會話中的任何表內所生成的最後乙個標識值。

-->

但是,scope_identity

只返回插入到當前作用域中的值;

@@identity

不受限於特定的作用域。 */

舉例說明一:在自動執行作業時建議使用

ident_current

函式。

/**下面針對自動作業返回標識值的應用舉例,主要說明

ident_current

和@@identity

相比,ident_current

返回值有效

**/

select

' 匯入業務單據

,同步模擬第'+

cast

(ident_current

('ceshi2..cwcmslog'

)+ 1 as

varchar

( 1))+' 次

',getdate()

-- ident_current ('ceshi2..cwcmslog')  --

返回為某個會話和作用域中指定的表或檢視生成的最新的標識值。

--result :

匯入業務單據

,同步模擬第2次

2009- 07- 14 09: 47: 01.293

select

' 匯入業務單據

,同步模擬第'+

cast

(@@identity

+1 as

varchar

( 1))+' 次

',getdate()

-- @@identity  --

返回最後插入的標識值的系統函式(作用域侷限於執行該函式的本地伺服器上的當前會話,當關閉當前會話時返回

null)

--result :

null

2009- 07- 14 09: 47: 01.293

舉例說明二:

在返回標識列序號時,選擇

scope_identity

或@@identity

函式各有不同。都是返回當前作用域或會話的標識值,但

@@identity

函式不受限於特定的作用域,

返回最後乙個標識值。

/**下面手動作業返回標識值,聯機叢書中的應用舉例;主要說明

scope_identity

和@@identity

在當前會話中返回最後乙個標識值的不同

**/

-->1.

新建兩個表

tz 和

ty ,分別設定各自的標識列

create

table tz ( z_id  int

identity

( 1, 1)

primary

key, z_name varchar

( 20)

notnull) go

insert

tz select

'lisa'

union

allselect

'mike'

union

allselect

'carla' go

/*--result

z_id   z_name

-------------

1      lisa

2      mike

3      carla */

create

table ty ( y_id  int

identity

( 2, 1)

primary

key, y_name varchar

( 20)

null) go

insert

ty select

'boathouse'

union

allselect

'rocks'

union

allselect

'elevator' go

/*--result

y_id  y_name

---------------

1   boathouse

2   rocks

3   elevator */

-->2.

新建觸發器

ztrig

,定義在

tz 上插入資料,則同時在

ty 中插入一行

create

trigger ztrig on

tz forinsertas

begin

insert ty values(''

) end go

-->3.

插入一行資料

insert

tz values

('rosalie')

go -->4.

檢視返回不同的標識值

select

scope_identity

()as [scope_identity] go

select

@@identity

as [@@identity] go

/*--result

scope_identity

--------------------------------------- 4

(1 行受影響)

@@identity

--------------------------------------- 5

(1 行受影響)

*/ --drop table tz,ty

結果:@@identity

返回所有作用域的最後乙個標識值,而

scope_identity

只返回當前作用域的標識值。

建議:

在返回標識列序號時,如果一直在當前會話且是手動執行語句,可以選擇

scope_identity

或@@identity

函式;

在自動執行作業時,需要返回標識列應該優先選擇

ident_current

函式,因為自動執行作業可能不在乙個作用域中而且都是針對指定表返回標識值。

gevent獲取每次函式執行的返回值 (執行結果)

g list list for stock in stocks dbname daily data sz if stock 0 endswith sz else daily data sh get daily data 是乙個函式,後邊的都是此函式所需引數 g gevent.spawn get da...

jquery的 ajax返回值為中文時

用jquery的ajax,遇到個問題,伺服器端從資料庫取到的資料沒有出現中文亂碼問題 日誌打出來是沒有亂碼的 但是非同步傳到客戶的時候卻出現了亂碼。伺服器端已經編碼過了 utf 8編碼 開始一直懷疑是客戶端的問題,比如客戶端和伺服器端編碼不一致啊,也懷疑是不是jquery的ajax工具函式中少配了 ...

python定義函式時的預設返回值

python定義函式時,一般都會有指定返回值,如果沒有顯式指定返回值,那麼python就會預設返回值為none,即隱式返回語句 return none 執行如下 def now print 2018 03 20 直接執行函式的話,結果為 但是如果列印函式的話 print now 列印結果為 相當於執...