变量
一、信息打印
print 'hello,sql'; --打印在消息位置
select 'hello,sql'; --打印在结果位置
二、变量
--变量:(1)局部变量(2)全局变量
--(1)局部变量:以@开头,先声明再赋值
declare @str varchar(10); --声明
set @str='hello'; --赋值
--select @str='hello';
print @str;
--set和select 的区别
--set: 赋值变量指定的值
--select: 一般用于表中查询出的数据赋值给变量,如果查询结果由多条,取最后一条赋值
--例子:select @a = 字段名 from 表名 当前表最后一行的某个字段值赋值给@a
--(2)全局变量:以@@开头,由系统进行定义和维护
--@@ERROR:返回执行的上一个语句的错误号
--@@IDENTITY:返回最后插入的标识值
--@@MAX_CONNECTIONS:返回允许同时进行的最大用户连接数
--@@ROWCOUNT:返回受上一语句影响的行数
--@@SERVERNAME:返回运行SQL Server的本地服务器的名称
--@@SERVICENAME:返回SQL Server正在其下运行的注册表项的名称
--@@TRANCOUNT:返回当前连接的活动事务数
--@@LOCK_TIMEOUT:返回当前会话的当前锁定超时设置(毫秒)
--示例
--为赵云此人进行开卡开户操作
insert into AccountInfo(AccountCode,RealName,AccountPhone)
values('4287732767232','赵云','12782647653');
declare @AccountId int ;
set @AccountId = @@IDENTITY;
insert into BankCard(CardId,AccountId,CardPwd,CardMoney,CardState)
values('6223562186786867',@AccountId,'12345',0,1);
--需要求出张飞的银行卡号和余额,张飞身份证:4287732767232
select CardId 银行卡号,CardMoney 余额 from BankCard
inner join AccountInfo
on AccountInfo.AccountId = BankCard.AccountId
where AccountCode = '4104398368971'
declare @AccountId int;
select @AccountId =
(select AccountId from AccountInfo where AccountCode = '4104398368971');
select CardId 银行卡号,CardMoney 余额 from BankCard
where @AccountId = AccountId;
三、go
--go语句
--(1)等待go语句之前的代码执行完成后才能执行后面的代码
create database DBTEST1;
go
use DBTEST1;
--(2)批处理结束的一个标志
declare @num int;
set @num = 100;
go
print @num --此处报错:必须声明标量变量 "@num"。说明go限制了变量的作用范围
标签:11,set,变量,--,go,select,AccountId
From: https://www.cnblogs.com/rain-blogs/p/16797314.html