1SQL SREVER中表中插入新数快捷增量字段前值
种情况实常新建户建立完户希马新户ID般种户ID字段设置成增长类型乍起没新ID麻烦实sql server置全局变量容易新增字段ID@@IDENTITY
条 INSERTSELECT INTO 容量复制语句完成@@IDENTITY 中包含语句生成标识值果语句未影响包含标识列表 @@IDENTITY 返回 NULL果插入行生成标识值 @@IDENTITY 返回生成标识值果语句触发触发器该触发器执行生成标识值插入操作语句执行立调 @@IDENTITY 返回触发器生成标识值
具体应中样写SQL语句:
string strSql INSERT INTO [User]([Name][LoginName][Pwd][RegTime][IsSuper][Remark]) +
VALUES(@Name@LoginName@Pwd@RegTime@IsSuper@Remark)select @@IDENTITY
执行时候直接commandExecuteScalar()直接返回该条记录UserID
解答二:
实验结:
select DISTINCT @@IDENTITY as iden from FaWen
解释:述语句 SQL SERVER 会话条连接返回该连接条插入记录增字段值
假设3程序分连接SQL SERVER三连接3程序表序插入数值分1233程序SQL连接保持着第程序述语句13第二程序23第三程序3
述语句刚插入记录增字段值怕程序发插入操作
述语句中 DISTINCT 原然返回值前连接插入操作值返回相值记录条条数等前连接插入记录数
实验方法:启动三 Query analyzer 查询分析器分执行插入操作做述取增字段值操作
利
rsaddnew
增加条记录时时获取增1字段ID前值须进行次查询获取立该ID值果增加记录完毕利select id 进行次查询疑会系统受限办法?
果保证id行数话
rsmoveend '指针条记录时count全部行数
rscount
2什做SQL注入防止?请举例说明
SQL注入正常SQL执行语句中恶意插入攻击者想运行sql语句方法写
public static bool Login(string loginNamestring pwd)
{
string strSql stringFormat(select * from [User] where LoginName '{0}' and Pwd '{1}' loginNamepwd)
}
果传loginname值' or 11sql语句成select * from [User] where LoginName '' or 11'样密码输入什肯定符合条件然简单情况果loginname值改成' or 11delete from [user]果堪设想果通sql执行net use相关命令服务器加帐号样逐步控制整数库服务器
sql注入通常方法损害
放置实简单通少两方法进行:
1根实组合sql方法通命令参数方式执行命令sql改成种方式:
string strSql select * from [user] where LoginName @LoginName and Pwd @Pwd
然通sqlcommand执行根解决问题
2控制参数长度想进行sql注入话需定长度字符串执行果规定LoginName 长度长超8般会造成损害然特殊情况情况命令参数方式
点评:
sql注入编程时必须考虑问题特BS程序更严格检查否sql注入漏洞关键点明白解决问题般面试员会希提高参数方式防止注入
3游标作知道游标已
关系数库中操作会整行集起作 SELECT 语句返回行集包括满足该语句 WHERE 子句中条件行种语句返回完整行集称结果集应程序特交互式联机应程序总整结果集作单元效处理应程序需种机制便次处理行部分行游标提供种机制结果集种扩展
游标特点:
允许定位结果集特定行
结果集前位置检索行部分行
支持结果集中前位置行进行数修改
户显示结果集中数库数做更改提供级见性支持
提供脚存储程触发器中访问结果集中数 TransactSQL 语句
游标中提取信息通判断@@FETCH_STATUS 值判断否@@FETCH_STATUS0时候说明提取成功否
认
点评:
游标进行数库操作重概念现代软件开发中应特殊存储程中会应毕竟重必须掌握概念理解原理法
4SQL Server两种索引形式?索引作?索引优缺点?
sql server索引分聚集索引非聚集索引面分说明:
聚集索引
聚集索引根数行键值表视图中排序存储数行索引定义中包含聚集索引列表聚集索引数行身序排序
表包含聚集索引时表中数行排序序存储果表具聚集索引该表称聚集表果表没聚集索引数行存储称堆序结构中
非聚集索引
非聚集索引具独立数行结构非聚集索引包含非聚集索引键值键值项指包含该键值数行指针
非聚集索引中索引行指数行指针称行定位器行定位器结构取决数页存储堆中聚集表中堆行定位器指行指针聚集表行定位器聚集索引键
索引作查询时提高查询效率量减更新时开销
优点:
设计良索引查询效率极提高某情况甚提高百千倍
缺点:
需占额外空间资源更新时耗费时间更数更新会导致索引更新样会导致增加系统开销
点评:
进行系统优化选择中索引第位设计良数库肯定需高超索引设计技巧方面效率提高倍两倍问题会质飞跃
索引优化重性型项目里说索引优化较困难列需加入索引列序样索引需设置聚集索引等等必须考虑问题
5事务什?
事务单工作单元果某事务成功该事务中进行数修改均会提交成数库中永久组成部分
果事务遇错误必须取消回滚数修改均清
说事务系列原子操作组成原子操作必须全部完成否动作会取消恢复初始状态
开始事务BEGIN TRANSACTION 语句显 COMMIT ROLLBACK 语句结束
针数库说
事务仅仅限数库数库外动作组合进事务中般称企业级事务举例子:两操作必须完成数库插入条记录必须硬盘某文件夹创建文件企业级事务超出简单数库事务范畴通编程实现企业级事务
点评:
事务数库开发中非常重概念保证数库完整性致性非常重事务C#代码实现更务必熟练掌握
6存储程函数区
存储程功强执行包括修改表等系列数库操作创建 SQL Server 启动时动运行存储程
定义函数户定义函数执行组修改全局数库状态操作
存储程非确定函数
定义函数允许户定义函数体中置非确定函数
存储程返回记录集
定义函数返回表变量意输出参数
存储程返回值直接引必须单独调
定义函数返回值直接引直接 select * from 函数
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档