sql server基础知识总结,sql server的使用方法
问题1:如何修复误删的记录?
在企业管理器(sql 2000)或Sql Server中
在Studio中不能修改Id字段,如图:
从LogDate的时间可以看出,Id=1的数据是最后插入的。
问题2:删除所有数据后,为什么Id不是来自1?
开始?
从bingot1中删除
去
插入到BingoT1(名称,标识号
值(李斌,
123456789012345 )
插入到BingoT1(名称,标识号)
价值观(张林清),
123456789012345678 )
插入到BingoT1(名称,标识号)
值(李菲,
12345678901234500 x’)
插入到BingoT1(名称,标识号)
价值观(通用小娟),
123456789012345 )
SELECT * FROM BingoT1
去
执行后,按如下方式检查数据:
如果表包含标识列,则该列的计数器将重置为该列定义的种子值。如果没有定义种子,则使用默认值。
1。若要保留标识计数器,请使用DELETE。
缩短
删除表中的所有行,而不记录单个行的删除。TRUNCATE TABLE在功能上等同于不带WHERE子句的DELETE。
同样的说法;但是,TRUNCATE TABLE速度更快,使用的系统资源和事务日志资源更少。
第二,SQL SERVER
中枢神经系统-系统表
系统对象
存储数据库中创建的每个对象(如约束、默认值、日志、规则和存储过程)。
SELECT * FROM sysobjects其中xtype=U
SELECT * FROM SysObjects其中xtype=D
SELECT * FROM SysObjects其中xtype=PK
执行后,可以看到我们新创建的表BingoT1,它的默认约束DF__BingoT1__LogDate__07020F21(以DF开头),以及它的主键PK__BingoT1__060DEAE8(以PK开头)。
Xtype标识对象类型。可以是下列对象类型之一:
C=检查
D=默认设置或默认
F=外键
L=log FN
=标量函数IF=内联表函数
P=存储过程PK=主键约束(类型K) RF=
复制筛选器存储过程
S=系统表TF=表函数TR=触发器U=用户表UQ=唯一约束(类型K)
V=视图X=扩展存储过程
您可以通过以下语句查看与表相关的各种资源:
-查看与表相关的各种资源。
选择*
来自系统对象
其中parent_obj IN(选择id
来自系统对象
其中name=BingoT1 )
SysColumns
将列存储在表和视图中,并将存储过程的每个参数保存在数据库中。您可以使用以下语句查看表BINGOT1的所有列信息。
-查看表格的所有列信息。
选择*
来自系统列
其中id在(选择id
来自系统对象
其中name=BingoT1 )
问题:我很少用系统表。有实际应用吗?
让我们使用这三个系统表来编写一个简单的代码生成器!
应用程序,生成实体类属性:
选择“公共虚拟”
CASE t . name WHEN int THEN int ELSE string END c . name“{ get;设置;
来自dbo.sysobjects
内部联接dbo.syscolumns
AS c ON c.id=o.id
内部联接数据库系统类型
AS t ON c.xusertype=t.xusertype
其中o.type=U
o.name=BingoT1
输出结果如下:
public virtual int id { get设置;
公共虚拟字符串名称{ get设置;
公共虚拟字符串标识{ get设置;
公共虚拟字符串LogDate { get设置;
其次,生成一个列表页面并添加一个页面:
首先需要给每个字段添加一个扩展属性,包括参数@value赋值备注、@level1name赋值表名和@level2name赋值字段名。
高级管理人员
sys . sp _ addextendedproperty @ name=N ms _ Description ,
@value=N 主键,@ level0type=n 架构,@ level0name=n dbo ,
@level1type=NTABLE ,@level1name=NBingoT1 ,
@level2type=NCOLUMN ,@level2name=Nid
高级管理人员
sys . sp _ addextendedproperty @ name=N ms _ Description ,
@value=N name ,@ level0type=n schema ,@ level0name=n dbo ,
@level1type=NTABLE ,@level1name=NBingoT1 ,
@level2type=NCOLUMN ,@level2name=NNAME
高级管理人员
sys . sp _ addextendedproperty @ name=N ms _ Description ,
@value=N ID号,@ level0type=n 架构,@ level0name=n dbo ,
@level1type=NTABLE ,@level1name=NBingoT1 ,
@ level 2 type=N“column”,@ level 2 name=N“identity no”
高级管理人员
sys。sp _ addextendedproperty @ name=N ms _ Description ,
@value=N 录入日期,@level0type=NSCHEMA ,@level0name=Ndbo ,
@level1type=NTABLE ,@level1name=NBingoT1 ,
@level2type=N 列,@level2name=N 日志日期
然后就可以使用系统函数生成列表页面代码。
选择" asp:BoundColumn
数据字段= 对象名称
HeaderText=
强制转换(值为NVARCHAR)" "
案例转换(值为NVARCHAR)
什么时候主键"然后"
Visible=False
其他
END“/ASP:BoundColumn”
从
FN _ listendedproperty(NULL, user , dbo , table , BingoT1 ,
列,默认)
结果如下(在查询分析器中以文本格式显示结果,快捷键Ctrl T):
asp:BoundColumn DataField=id
HeaderText=主键Visible=False
/asp:BoundColumn
asp:BoundColumn DataField=NAME
HeaderText=姓名
/asp:BoundColumn
ASP:BoundColumn数据字段=标识号
HeaderText=身份证号
/asp:BoundColumn
ASP:BoundColumn数据字段= LogDate
HeaderText=录入日期
/asp:BoundColumn
再生成添加页面代码,其中Char(13)代表回车符。
选择" tr "字符(13)
td
演员(值为NVARCHAR) : /td CHAR(13)
td
ASP:TextBox ID= txt objname runat= server /ASP:TextBox
td CHAR(13)
tr
FROM FN _ listexndedproperty(NULL, user , dbo , table , BingoT1 ,
列,默认)
结果如下(在查询分析器中以文本格式显示结果,快捷键Ctrl T):
任务描述主键:/td
TD ASP:TextBox ID= txtid runat= server
/asp:文本框任务描述
任务描述姓名:/td
TD ASP:TextBox ID= txt name runat= server
/asp:文本框任务描述
任务描述身份证号码:/td
TD ASP:TextBox ID= txtidintityno runat= server
/asp:文本框任务描述
任务描述录入日期:/td
TD ASP:TextBox ID= txtLogDate runat= server
/asp:文本框任务描述
页面效果图如下所示: