1、修改表保存不上的问题
在数据库操作创建表的过程当中,我们有可能随时对表进行修改,那在保存好表之后,对表进行修改并且点击保存的时候,会出现这样的情况,如图1
这个时候我们找到SQL Server 2008 菜单栏中的“工具”,找到如图2,将“阻止保存要求重新创建表的更改”那个勾选取消掉就可以啦。
2、创建表ID自增的问题
通过在我们创建表的时候,都会有一个必不可少的ID,也就是这张表的唯一标识,那如何让ID实现自增呢?如图3,点中ID,在列属性中找到“标识规范”,将否都改为是,标识增量和标识种子自动变为1,则ID自增修改完成。
3、注意在创建表的时候非空情况下设置默认值
例如:
int、bigint、smallint这种类型设置默认值为 ((0))
varchar、nvarchar这种类型设置默认值为 ('')
datetime,smalldatetime这种类型设置默认值为 (getdate())
4、SQL语法:带参数的拼接和不带参数的拼接格式
5、SQL语法:带参数并且输入多个参数时,例(1,2,3)用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、在写存储过程时,通常会用到声明变量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、
未完待续。。。。