美文网首页
实际数据库操作遇到的小问题

实际数据库操作遇到的小问题

作者: 肉肉要次肉 | 来源:发表于2017-07-12 16:33 被阅读9次

    1、修改表保存不上的问题

    在数据库操作创建表的过程当中,我们有可能随时对表进行修改,那在保存好表之后,对表进行修改并且点击保存的时候,会出现这样的情况,如图1

    图1 “阻止保存要求重新创建表的更改”

    这个时候我们找到SQL Server 2008 菜单栏中的“工具”,找到如图2,将“阻止保存要求重新创建表的更改”那个勾选取消掉就可以啦。

    图2 工具-选项

    2、创建表ID自增的问题

    通过在我们创建表的时候,都会有一个必不可少的ID,也就是这张表的唯一标识,那如何让ID实现自增呢?如图3,点中ID,在列属性中找到“标识规范”,将否都改为是,标识增量和标识种子自动变为1,则ID自增修改完成。

    图3 自增

    3、注意在创建表的时候非空情况下设置默认值

    例如:

    int、bigint、smallint这种类型设置默认值为 ((0))

    varchar、nvarchar这种类型设置默认值为 ('')

    datetime,smalldatetime这种类型设置默认值为 (getdate())

    4、SQL语法:带参数的拼接和不带参数的拼接格式

    图4 参数拼接

    5、SQL语法:带参数并且输入多个参数时,例(1,2,3)用in语法

    图5 in用法 图6 in用法

    图片中的@ID和@attitude参数都是varchar类型。

    图5:in括号里面是单引号,a.ID在表中的类型是int类型

    图6:in括号里面是三个单引号,tu.uQQ3是varchar类型

    唯一的区别在于:图5中的a.ID在表中的类型是int类型,而图6中的tu.uQQ3是varchar类型。所有参数拼接引号时也会所有不同,否则会提示varchar类型转int类型失败。

    6、SQL Server中回车符和换行符的代码

    换行符: CHAR(10) 

    回车符: CHAR(13)

    图7 回车符和换行符

    7、在写存储过程时,通常会用到声明变量declare @sql varchar(n)

    之前在写存储过程时,设置的变量长度一般是5000,即:declare @sql varchar(5000)

    后来代码多了之后,发现运行出现了代码丢失的问题,才恍然声明变量的长度不够了,于是才知道声明变量的最大长度就是8000.或者将长度设为MAX.

    declare @sql varchar(MAX/8000)

    8、仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'#tempEvent'中的标识列指定显式值。

    数据库中用sql语句创建一张临时表,如下

    create table [#tempEvent] (ID int not null identity(1,1) primary key,EventType tinyint,CurLatitude decimal(9, 6), CurLongitude decimal(9, 6), CurAddr nvarchar(80),EventTime datetime,EmpID varchar(36), EmpName nvarchar(20),CompID int,CompName nvarchar(200))

    将需要的数据插入到创建好的这张[#tempEvent]临时表中,如下

    insert into [#tempEvent] 

    select ID,EventType,CurLatitude,CurLongitude,CurAddr,EventTime,EmpID,EmpName,CompID,CompName from [#tempT] 

    就会出现如上的错误提示。

    于是我在创建临时表之后设置set identity_insert [#tempEvent] on,还是无效,后来发现,在补上允许插入设置之后,还需要补全要插入的所有字段名称,即

    insert into (ID,EventType,CurLatitude,CurLongitude,CurAddr,EventTime,EmpID,EmpName,CompID,CompName)[#tempEvent] 

    select ID,EventType,CurLatitude,CurLongitude,CurAddr,EventTime,EmpID,EmpName,CompID,CompName from [#tempT] 

    这样就可以啦!

    9、

    10、

    未完待续。。。。

    相关文章

      网友评论

          本文标题:实际数据库操作遇到的小问题

          本文链接:https://www.haomeiwen.com/subject/xnpphxtx.html