1:var a; type of(a) 返回的是未定義,就是聲明瞭沒有賦值叫作未定義;2:關於StackExchange.Redis(3代免費)和ServiceStack.Redis(4代收費)都屬於Redis的知識點範疇html
3.在sql的視圖中,遇到這樣的句子:WITH CHECK OPTIONView Codesql
4.觸發器 trigger 其實就是一種特殊的存儲過程 理解觸發器,就是:倆表愛的死去活來,你要是殺了A,那B就不活了;你對A作的update、delete 會影響到B的update、delete數據庫
1 用到的功能有: 2 1.若是我更改了學生的學號,我但願他的借書記錄仍然與這個學生相關(也就是同時更改借書記錄表的學號); 3 2.若是該學生已經畢業,我但願刪除他的學號的同時,也刪除它的借書記錄。 4 等等。 5 6 這時候能夠用到觸發器。對於1,建立一個Update觸發器: 7 8 Create Trigger truStudent 9 On Student --在Student表中建立觸發器 10 for Update --爲何事件觸發 11 As --事件觸發後所要作的事情 12 if Update(StudentID) 13 begin 14 15 Update BorrowRecord 16 Set StudentID=i.StudentID 17 From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted臨時表 18 Where br.StudentID=d.StudentID 19 20 end 21 22 理解觸發器裏面的兩個臨時的表:Deleted , Inserted 。注意Deleted 與Inserted分別表示觸發事件的表「舊的一條記錄」和「新的一條記錄」。 23 一個數據庫系統中有兩個虛擬表用於存儲在表中記錄改動的信息,分別是: 24 虛擬表Inserted 虛擬表Deleted 25 26 在表記錄新增時 存放新增的記錄 不存儲記錄 27 修改時 存放用來更新的新記錄 存放更新前的記錄 28 刪除時 不存儲記錄 存放被刪除的記錄 29 30 31 一個Update 的過程能夠看做爲:生成新的記錄到Inserted表,複製舊的記錄到Deleted表,而後刪除Student記錄並寫入新紀錄。
1 對於2,建立一個Delete觸發器 2 Create trigger trdStudent 3 On Student 4 for Delete 5 As 6 Delete BorrowRecord 7 From BorrowRecord br , Delted d 8 Where br.StudentID=d.StudentID
5.要是問起存儲過程的好處:編程
通常來說,數據庫的在執行sql時,先編譯後執行的;可是存儲過程是取自一個執行好的代碼塊,就不須要再編譯拉;安全
也能夠把一個表中的部分數據,存在存儲過程以供別人進行數據的測試和對比;網絡
並且,也能夠保護真實的數據不被改變。多線程
若是已經明確地參數化查詢,將它放置在存儲過程當中可能帶來最好的可重用性。由於只須要發送參數和存儲過程的名稱,因此網絡流量減小了。異步
存儲過程預先編譯,它們運行得比即席查詢快速。存儲過程還能爲包含在存儲過程當中的一組查詢維護單一的參數化計劃,而不是維護大量單獨查詢的小型計劃。這避免了計劃緩衝被單獨查詢的計劃充滿。async
6 日誌工具(這個抽空得搞了)ide
7.除非另外還指定了 TOP 或 FOR XML,不然,ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效。
只要咱們在嵌套子查詢視圖裏面加入: top 100 percent 便可
8 序列化 齊活了 9.爬蟲 10.Navicat的破解 11.僞靜態 12.在sql中Rand()函數是隨機生成的小數點,NewID是隨機生成的36位的序列(相似guid())13.數據庫刪除語句 Drop/Delete/Truncate比較
14.SQLSERVER DBCC命令大全、SQL SERVER 2005 DBCC IND命令說明、恢復SQL Server被誤刪除的數據 1五、async & await 的前世此生(Updated)、[C#] 走進異步編程的世界 - 開始接觸 async/await(他的左邊列表裏不少知識點)
1六、[C#] 進階 - LINQ 標準查詢操做概述 1七、自定義控件 初識(1) 1八、SQL Server 分頁方法彙總 、19 [C#] C# 知識回顧 - 特性 Attribute(多看看這裏面的例子引用特性的 方法)
21 、IEnumerable<T>和IQueryable<T>(接口IQueryable<T>實際也是繼承了IEnumerable<T>接口的,設計Enumerable<T>和Queryable<T>兩套接口的緣由是爲了區別對待LINQ to OBJECTS、LINQ to SQL,二者對於查詢的處理在內部使用的是徹底不一樣的機制;針對LINQ to OBJECTS時,使用Enumerable中的擴展方法對本地集合進行排序和查詢等操做,查詢參數接受的是Func<>。Func<>叫作謂語表達式,至關於一個委託。針對LINQ to SQL時,則使用Queryable中的擴展方法,它接受的參數是Expression<>。Expression<>用於包裝Func<>。LINQ to SQL引擎最終會將表達式樹轉化成爲相應的SQL語句,而後在數據庫中執行。)
2二、從LINQ開始之LINQ TO OBJECTS(上) 2三、三種備份數據庫的方法,只需執行sql語句就好了
2三、數據庫的數據導入和導出 2四、vs2017離線安裝而且安裝包不佔用C盤空間
2五、Linq to OBJECT是用於操做內存對象的LINQ編程接口,包含了大量的查詢操做符,針對內存中的集合對象進行操做。
2六、厚積薄發,豐富的公用類庫積累,助你高效進行系統開發(14)---Winform開發的經常使用類庫(終結篇,CHM文檔放送)2七、C#夯實基礎之多線程二:主線程、前臺線程與後臺線程
2八、C# 在多線程環境中,進行安全遍歷操做(lock知識點)
2九、RabbitMQ五:生產者--隊列--多消費者 30、SQL SERVER 2008的錯誤日誌太大 3一、SQLSERVER 更改默認端口號
3一、使用identity(int,1,1)來產生行號,必須把數據插入到一張表中
3二、
Rowcount的用法
這樣的查詢只會返回表A中的前10條數據。它和 "select top 10 * from 表A" 的做用同樣。注意一點,set rowcount 的設置會在整個會話中有效。好比下面的sql示例:
set rowcount 10 select * from 表A go select * from 表B
@@Rowcount與Rowcount看起來很像,只相差了兩個@,但它們的功能是不同的,@@Rowcount主要是返回上次sql語句所影響的數據行數,好比:
若是表A中的數據量大於或等於2,那麼select @@Rowcount就會返回2,若是隻有1條或0條數據,那麼select @@Rowcount就會返回1或者0。
注意,不要把@@Rowcount理解爲只返回查詢的結果數量,刪除,修改,新增等語句,也會正確的返回@@Rowcount值。好比:
若是表A中存在gid='a'的數據,那麼select @@Rowcount就會返回它所修改數據的行數,若是不存在gid='a'的數據,那麼select @@Rowcount就會返回0,刪除與新增都是一樣。