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

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

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

实际数据库操作遇到的小问题_第1张图片
图1 “阻止保存要求重新创建表的更改”

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

实际数据库操作遇到的小问题_第2张图片
图2 工具-选项

2、创建表ID自增的问题

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

实际数据库操作遇到的小问题_第3张图片
图3 自增

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

例如:

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

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

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

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

实际数据库操作遇到的小问题_第4张图片
图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)

实际数据库操作遇到的小问题_第5张图片
图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、




未完待续。。。。

你可能感兴趣的:(实际数据库操作遇到的小问题)