sql中declare
declare 声明的意思
eg. declare @local_variable data_type
声明时需要指定变量类型,
在sql语句中就可以使用@local_variable来调用变量
声明局部变量语法:
DECLARE @variable_name DataType
其中 variable_name为局部变量的名称,DataType为数据类型。
给局部变量赋值有两种方法:
1、SET @variable_name=value
2、SELECT @variable_name=value
两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般用于从表中查询出数据然后赋给变量。
例如:declare @id int
declare @id int = 3 ---声明中可以提供值,否则声明之后所有变量将初始化为NULL。
set @id=2
select @id = column_id from table where column_user = 'ABC' ---可以使用set和select对变量赋值
uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样
全局变量:
由于全局变量是系统定义的,我们这里只做举例。
@@ERROR 最后一个T-SQL错误的错误号
@@IDENTITY 最后一次插入的标识值
@@LANGUAGE 当前使用的语言名称
@@MAX_CONNECTIONS 可以创建的同时连接的最大数目
@@SERVERNAME 本地服务器的名称
@@VERSION SQL Server的版本信息
这里是触发器的写法:
create trigger updateTest on test for update
as
begin
declare @id int
declare @tablename varchar(100)
declare @remark varchar(150)
set @tablename='test'
set @remark=''
select @id=id from deleted insert into tb_index values(@id,@tablename,@remark)
end
create trigger deleteTest on test for delete
as
begin
declare @id int declare @tablename varchar(100)
declare @remark varchar(150) set @tablename='test' set @remark=''
select @id=id from deleted insert into tb_index values(@id,@tablename,@remark)
end
create trigger insertTest on test for insert
as
begin
declare @id int declare @tablename varchar(100)
declare @remark varchar(150) set @tablename='test' set @remark=''
select @id=id from inserted insert into tb_index values(@id,@tablename,@remark)
end
浙公网安备 33010602011771号