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、
未完待續。。。。