SQLserver 如何給表新建觸發器

2021-10-09 20:14:40 字數 1731 閱讀 9785

sql

set ansi_nulls on

goset quoted_identifier on

gocreate

trigger update_xmsx_after_update_xsxxb_xm

on dbo.xsxxb

after

update

--在更新資料時對錶中資料進行更新

asbegin

ifupdate

(xm)

--如果表中的xm欄位發生了更新,才執行對錶中xmsx欄位的更新

begin

-- set nocount on added to prevent extra result sets from

-- interfering with select statements.

set nocount on

;declare

@xsid

int,

@xmvarchar(50

);--定義變數 ,@xm 姓名 可變字串長度為五十 @xsid 學生id 整型變數

select

@xsid

=xsid,

@xm=xm from inserted;

--在執行插入的操作後,在inserted的臨時表中獲取xsid和xm,並將其賦給@xsid和@xm

update xsxxb set xmsx=dbo.pysxcx(

@xm)

where xsid=

@xsid

;-- 更新xsxxb中的資料,使用函式pysxcx在表hzpyb中查詢@xm對應的xmsx(姓名縮寫),

-- 並當@xsid 和xsxxb表中的xsid相同時,更新對應的xmsx

-- insert statements for trigger here

endelse

print

'沒有更新姓名,不對錶的xmsx進行更新'

endgo

use ssmstest --使用的資料庫名稱

goset ansi_nulls on

goset quoted_identifier on

gocreate

trigger update_xmsx_after_insert_xsxxb

on dbo.xsxxb

after

insert

--在插入資料後對xsxxb進行更新

asbegin

set nocount on

;declare

@xmvarchar(50

),@xsid

int;

--定義變數,@xm 姓名 可變字串長度為五十 @xsid 學生id 整型變數

select

@xsid

=xsid,

@xm=xm from inserted;

--在執行插入的操作後,在inserted的臨時表中獲取xsid和xm,並將其賦給@xsid和@xm

update xsxxb set xmsx=dbo.pysxcx(

@xm)

where xsid=

@xsid

;-- 更新xsxxb中的資料,使用函式pysxcx在表hzpyb中查詢@xm對應的xmsx(姓名縮寫),

-- 並當@xsid 和xsxxb表中的xsid相同時,更新對應的xmsx

end

SqlServer如何給表新增新的字段以及字段注釋

use 資料庫名 alter table 表名 add 欄位名 型別 預設值 是否為空 exec sp addextendedproperty n ms description n 注釋內容 n schema n dbo n table n 表名 n column n 欄位名 use gameage...

sqlserver給表加備註並檢視

一 給表加備註語句 比如給乙個叫test的表加乙個備註叫 測試 exec sys.sp addextendedproperty name n ms description level0type n schema level0name n dbo level1type n table 上述為系統寫死的...

SQL Server如何使用表變數

參考前乙個例項使用output儲存更新記錄前後資料 改用乙個表變數來實現。首先定義乙個表變數 declare salaryreport table memberid int name nvarchar 100 oldsalary decimal 18,6 newsalary decimal 18,6...