变量之SQLServer

1.信息打印

print 'hello,sql';
select 'hello,sql';

2.变量

--变量:(1)局部变量 (2)全局变量
--(1)局部变量:以@开头,先声明,再赋值
declare @str varchar(20);
set @str='hello,sql';
--select @str='hello,sql';
print @str;
--set和select进行复制的时候的区别
--set:赋值变量指定的值
--select:一般用于表中查询出的数据赋值给变量,如果查询结果有多条,取最后一条赋值
--例如:select @a=字段名 from 表名
--当前表最后一行的某一个字段值给@a

--(2)全局变量:以@@开头,由系统进行定义和维护
--@@ERROR:返回执行的上一个语句的错误号
--@@IDENTITY:返回最后插入的标识值
--@@MAX_CONNECTIONS:返回允许同时进行的最大用户连接数
--@@ROWCOUNT:返回受上一语句影响的行数
--@@SERVERNAME:返回SQL Sever的本地服务器的名称
--@@SERVICENAME:返回SQL Sever正在其下运行的注册表项的名称
--@@TRANCOUNT:返回当前连接的活动事务数
--@@LOCK_TIMEOUT:返回当前会话的当前锁定超时设置(毫秒)

示例:

--建表
--表设计
--1.账户信息表
--2.银行卡表
--3.交易信息表(存储存钱和取钱的记录)
--4.转账信息表(存储转账信息记录)
--5.状态信息变化表(存储银行卡状态1:正常,2:挂失,3:冻结,4:注销)

--账户信息表
create table AccountInfo
(
AccountId int primary key identity(1,1),--账户编号
AccountCode varchar(20) not null,--身份证号码
AccountPhone varchar(20) not null,--电话号码
RealName varchar(20) not null,--真实姓名
OpenTime smalldatetime not null--开户时间
);
--银行卡
create table BankCard
(
CardNo varchar(30) primary key,--银行卡卡号
AccountId int not null,--账户编号(与账户信息表形成主外键关系)
CardPwd varchar(30) not null,--银行卡密码
CardMoney money not null,--银行卡余额
CardSate int not null,--1:正常 2:挂失 3:冻结 4:注销
CardTime smalldatetime default(getdate())--开卡时间
);
--交易信息表(存储存钱和取钱的记录)
create table CardExchange
(
ExchangeId int primary key identity(1,1),--交易自动编号
CardNo varchar(30) not null,--银行卡号(与银行卡表形成主外键关系)
MoneyInBank money not null,--存钱金额
MoneyOutBank money not null,--取钱金额
ExchangeTime smalldatetime not null--交易时间
);
--转账信息(存储转账信息记录)
create table CardTransfer
(
TransferId int primary key identity(1,1),--转账自动编号
CardNoOut varchar(30) not null,--转出银行卡卡号(与银行卡表形成主外键关系)
CardNoIn varchar(30) not null,--转入银行卡卡号(与银行卡表形成主外键关系)
TransferMoney money not null,--交易金额
TransferTime smalldatetime not null --交易时间
);
--状态信息变化表(存储银行卡状态1:正常2:挂失3:冻结4:注销)
create table CardStateChange
(
StateId int primary key identity(1,1),--状态信息自动编号
CardNo varchar(30) not null, --银行卡号(与银行卡表形成主外键关系)
OldState int not null, --银行原始状态
NewState int not null, --银行卡新状态
StateWhy varchar(200) not null, --状态变化原因
StateTime smalldatetime not null --记录产生时间
);
go

--示例
--(1)为张三此人进行开户开卡操作,张三身份证:420107199904054233
insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime)
values('420107199904054233','13580001111','张三',GETDATE());
declare @AccountId int;
set @AccountId =@@IDENTITY;
insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardSate)
values('6225125478544588',@AccountId,'123456',0,1);
select *from AccountInfo;
select *from BankCard;
go
--(2)需要求出张三的银行卡卡号和余额,张三身份证:420107199904054233
declare @AccountId int;
set @AccountId=(select AccountId from AccountInfo where AccountCode='420107199904054233');
select *from BankCard where AccountId=@AccountId;
go

3.go语句
(1)等待go语句之前代码执行完成之后才能执行后面的代码

(2)批处理结束的一个标志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值