tosql是什麼
Ⅰ LINQ TO sql 有什麼優缺點啊
首先,在了解 LINQ To SQL 有什麼優點之前,我們有必要首先了解下,微軟為什麼弄了這么個東西。 搞出這個東西來有什麼目的:——當然是為了 滿足不知道怎麼操作數據的程序員開發設計的,並不是每個程序員 都會直接操作資料庫,LinQ 可以讓他們以一種面向數據對象的方式來思考,及持久化他們的數據!
好處: 容易學習,書寫簡單。 在開發 中小型 項目 的時候推薦使用!因為可以節省時間!
它可以很方便的調用 存儲過程、SQL函數
缺點:由於直接封裝了所有的數據持久操作。導致批量持久數據會產生效率問題
尤其體現在批量跟新數據,它會在內存中保持大量的數據模型。
總結:中小型 項目 就放心用吧! 不過從技術 儲備的角度來說,建議 看看entity framework
Ⅱ 什麼是ling to sql
ling to sql 首先得先解釋 linq
LINQ = 語言集成查詢(Language INtegrated Query)
是一組用於c#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢資料庫相同的方式操作內存數據。
舉個例子,比如你的C#代碼裡面,有個 Apple 對象,對象有 顏色這個屬性
當給你一個 Apple 類的列表,要你返回所有 顏色為紅色的。
如果沒有 LINQ 的話, 那麼就是 for 循環, 然後 if
使用 LINQ 的話, 就是有點像資料庫的 SQL 語句的寫法
var query =
from apple in appleList
where apple.Color == "紅色"
select apple;
關於 LINQ 的例子代碼:
http://hi..com/wangqing999/blog/item/40982215d2625371ca80c494.html
LINQ to SQL 呢?
就是首先是通過開發工具, 通過讀取資料庫中的表結構,來創建 C# / VB.NET 的代碼
比如你有個表 Test, 有2個欄位 id, value
那麼開發工具會產生一個類, 叫 Test. 這個類有2個屬性 id, value
然後你可以通過寫 LINQ 的方式, 來查詢資料庫裡面的數據。
var query =
from test in context.Test
select test;
關於 LINQ to SQL 的例子代碼:
http://hi..com/wangqing999/blog/item/143b63da8185904594ee37ee.html
Ⅲ xls to sql server是什麼工具
XlsToSql是一個便捷的Excel導入SQLServer工具。
XlsToSql是一個便捷的Excel導入SQLServer工具,可以將一個或多個excel文件中的數據導入到SQLServer資料庫中,並且具有操作簡單、使用方便、可重復執行、支持定時自動導入的特點,可以大大節省開發人員把excel數據導入SQLServer資料庫的時間。
Ⅳ LINQ和LINQ to SQL有區別嗎之間關系是什麼
本質上沒什麼區別,都指的是同一種概念,專門為sqlserver資料庫服務,就像MySql專門為PHP量身打照一樣,大部分人為了上口一般叫Linq。
Ⅳ VS2017中什麼找linq to sql
linq to sql是一個語法糖,能用linq查詢的方式去查詢資料庫,省去了復雜的sql語句,他不在新建項中,只有任何實現了IQueryable<>介面的集合都能用。你想在查詢資料庫中用它的話,直接建好資料庫後,新建ado.net實體數據模型,選擇來自資料庫的codefirst,選擇剛才的資料庫,然後就能看到實體模型類,接下來就可以使用linq to sql語法去查詢了
Ⅵ T-SQL到底是什麼
T-SQL
T-SQL是標准 SQL 程式設計語言的增強版,它是用來讓應用程式與 SQL Server 溝通的主要語言。T-SQL 提供標准 SQL的DDL 和 DML 功能,加上延伸的函數、系統預存程序以及程式設計結構(例如 IF 和 WHILE)讓程式設計更有彈性。T-SQL 的功能隨著新版的 SQL Server 而持續成長,讓我們來看一下 T-SQL 最新增加的特色。
介紹 T-SQL 的新特色
在 Microsoft SQL Server 7.0 中 T-SQL 有著為數不少的新增功能,包括新的預存程序、系統資料表、函數、資料型別、陳述式以及現存陳述式中的選項。這些都被保留在 SQL Server 2000 中,因此我們在這里要先回顧 (特別是在您還不很熟悉 SQL Server 7.0 中 T-SQL 的功能,這個溫習就很重要了)。因為有太多的新功能需要討論,在此我們僅為每個類別舉少數例子來加以介紹。
相關資訊
要找尋這些功能的完整清單,可以參考 SQL Server《線上叢書》中 「Transact-SQL新增與加強的功能」 主題。
系統預存程序
系統預存程序是 SQL Server 提供來執行管理與其他工作,包括了系統資料表更新以及從系統資料表中檢索資料等。系統預存程序是和 SQL Server 一起安裝,名稱以 sp_ (系統預存程序) 或 xp_ (延伸的預存程序)開頭。這些預存程序儲存在 master 資料庫中,許可權歸系統管理者所有。不過,許多程序可以從使用者自訂的資料庫執行,用來在特定資料庫中從系統資料表檢索資訊。當您執行一個系統預存程序,它是在目前資料庫的系統資料表中展開作業。
相關資訊
關於這類型程序的更多相關資訊,請參考《線上叢書》中 「延伸預存程序」 主題。
在 SQL Server 7 中新增了許多系統預存程序,如今在 SQL Server 2000 中同樣可以利用。表13-1列出了一些可能對您有所幫助的系統預存程序。
表13-1 Proceres Introced....
系統預存程序 描述
sp_cycle_errorlog 關閉目前的錯誤日誌檔案,重新命名為errorlog.1(以及,如果需要的話,將舊的errorlog.1重新命名為errorlog.2,依此類推),以及開始一個新的錯誤日誌檔案。
sp_helpfile 傳回與目前資料庫相關之檔案的名稱與屬性。
sp_helpfilegroup 傳回與目前資料庫相關之檔案群組的名稱與屬性。
sp_helprole 傳回與目前資料庫相關中角色的資訊。
sp_help_alert 報告伺服器定義的警示資訊。
sp_start_job 指示SQL Server代理程式開始執行一個工作。
並不是只有這些預存程序提供立即的資訊,不過它們在使用您的使用者資料庫時會相當有用。例如,當執行 T-SQL 指令碼並將輸出結果儲存到一個檔案時,提供使用者資訊的程序就會相當有幫助。您可以將 sp_helpfile、sp_helpfilegroup以及 sp_helpdb 的執行結果儲存在特定的資料庫中,畢竟當您需要重建資料庫時有必要了解檔案、檔案群組、資料庫選項在起初建立時的原始設定。在 SQL Server 7.0 新增並保留 SQL Server 2000 中的系統預存程序清單,可以在《線上叢書》「Transact-SQL新增與加強的功能」這個主題里找到。
系統資料表
系統資料表用來儲存 SQL Server 中所有資料庫的設定資訊,以及物件、使用者和使用者存取許可權的定義。每個使用者資料庫有各自的系統資料表,其中保存資料庫的資訊。只有在 master 資料庫的系統資料表才握有伺服器層級的設定資訊。您應該利用系統預存程序來存取系統資料表而不是直接存取系統資料表。關於新的 SQL Server 7.0 新增的系統資料表清單可在《線上叢書》里的「Transact-SQL新增與加強的功能」這個主題里找到。底下列出一些有趣的新系統資料表:
backupfile這個資料表存放在 msdb 資料庫中。它記錄了所有記錄檔備份或資料庫檔案備份的相關資訊。這些資訊包括檔案識別碼、檔案歸屬的檔案群組,以及檔案存在的實體磁碟或資料分割的名稱。
restorehistory這個資料表存放在 msdb 資料庫中。它包含對應於各還原作業相關資訊的資料列,不論是檔案的還原或是資料庫的還原。這些資訊包括還原的日期與時間、目的資料庫、資料回復的時間點以及還原的類型。
sysfiles此資料表為一虛擬資料表,亦即無法直接更新或修改。它包含了每個資料庫檔案的相關資訊,諸如實體裝置及邏輯的檔案名稱、檔案大小及最大檔案大小以及資料庫增長大小(如果資料庫有所增長的話)。
注意
請永遠使用系統預存程序來存取系統資料表,系統預存程序提供一層隔離以確保您不會更動到不可更改的資料。如果您以手動方式存取系統資料表,可能會有變更重要系統資訊的風險。
函數
SQL Server 內建的函數提供了一個快速、簡單的方法來完成某些特定的工作。SQL Server 7.0 新增了幾個有用的函數,並且也包含在 SQL Server 2000 中。了解哪些函數是可用的,SQL Server 應用程式的設計工作可以變得稍為簡單。在《線上叢書》中的「Transact-SQL 新增與加強的功能」這個主題可以找到新增函數的完整清單。此處僅介紹一些對您可能很有幫助的函數:
NEWID 建立一個 uniqueidentifier 資料型別的 全域唯一識別項 (GUID)。您需要使用這個函數將值分派給該資料型別的資料行,使用方式為 NEWID() 。(此函數不需引數)
YEAR 傳回指定日期年份部分的完整整數。使用方式為 YEAR(date) 。例如:以下陳述式 SELECT YEAR('07/11/01') 將會傳回值 2001。
MONTH 傳回指定日期月份部分的整數。使用方式為 MONTH(date) 。例如:以下陳述式 SELECT MONTH('07/11/01') 將會傳回值7。
DAY 傳回指定日期日期部分的整數。使用方式為 DAY(date) 。例如:以下陳述式 SELECT DAY('07/11/01') 將會傳回值 11。
FILE_NAME 傳回檔案識別碼(ID)的邏輯檔案名稱。使用方式為 FILE_NAME (file_id_number)。例如:陳述式 SELECT FILE_NAME(4) 檔案識別碼為4的檔案邏輯名稱。如果資料庫中找不到有此識別碼的檔案,則傳回 NULL。
資料型別
在 SQL Server 7 中新增了幾種新的資料型別,一些已經有的資料型別的尺寸也有延伸。此外,SQL Server 2000 新增了三種資料型別,這些資料別多數在第10章 已經討論過。此處僅列出 SQL Server 7 有改變,並且也包含在 SQL Server 2000 中的資料型別:
資料指標變數新增了一個 cursor 資料型別。關於指標的相關訊息,請參考《線上叢書》里「Cursors」這個主題。
新增了三種新的 Unicode 資料型別-nchar、nvarchar 以及 ntext。每一個 Unicode 字元使用兩個位元組,並支援所有國際字元。
新增了一種 uniqueidentifier 資料型別,用於儲存通用唯一識別碼(GUID)。
字元資料和二進位字串的最大長度擴展到8,000位元組。這一長度適用於 char、varchar、binary 以及 varbinary 等型別。
SQL Server 2000 則新增了下列資料型別:
bigint儲存8個位元組長度的整數。
sql_variant允許不同資料型別的值儲存於同一個資料行。此型別的資料行儲存資料本身的值並且加以描述-它的基本型別、小數位數、精確性、最大大小以及定序(collation)。
table運作方式與暫存資料表類似;其宣告包含資料行清單與資料型別。此資料型別可用來定義一個區域變數或是一個使用者自訂函數的傳回值。
陳述式
SQL Server 7.0 包括了許多新的 T-SQL 陳述式和已經存在陳述式的新選項。同樣的,這些也保留在S QL 2000 之中。這些陳述式對應 SQL Server 7.0 的一些新功能。例如,ALTER DATABASE 陳述式包含了下列一些針對檔案與檔案群組的新選項:MODIFY FILE、ADD FILEGROUP、MODIFY FILEGROUP、REMOVE FILE 以及 REMOVE FILEGROUP。特別是檔案群組,新的 DBCC CHECKFILEGROUP 陳述式會檢查檔案群組中所有資料表的分配和結構的完整性。
SQL Server 7.0 與 SQL Server 2000 包括兩個額外的 DBCC 陳述式、DBCC SHRINKFILE 與 DBCC SHRINKDATABASE。前者能縮減資料檔案的大小,後者可縮減資料庫的所有資料檔案並釋放未使用的磁碟空間。
SQL Server 7 與 SQL Server 2000 支援一種改進的備份和還原結構。新的BACKUP 陳述式允許全部或部份的資料庫備份和記錄檔備份。新的 RESTORE 陳述式允許使用全部或部份資料庫備份和記錄檔備份來還原。這些代替了 SQL Server 較早版本中的 DUMP 和 LOAD 陳述式。關於 SQL Server 7.0 與 SQL Server 2000 新增陳述式與選項的完整清單,請見《線上叢書》里「Transact-SQL 新增與加強的功能」這個主題。
使用 T-SQL 執行還原
RESTORE T-SQL 命令和 BACKUP 命令類似( 第 32 章 中曾經討論過)。如同BACKUP 命令,第一次使用時可能相當困難,但是一些 DBA 還是喜歡將他們的管理程序放置到 SQL 命令檔中,以便於重復執行這些功能。和 BACKUP 命令一樣,RESTORE 命令提供了比 Enterprise Manager 更多的附加選項。
在本節中,我們將討論 RESTORE 命令的語法以及這個命令提供的多種選項。RESTORE 命令有兩種形式顯示如下:
RESTORE DATABASE 還原完整的資料庫、檔案或檔案群組。
RESTORE LOG 還原交易記錄檔。
如您所見,所用的命令要依照執行還原操作的類型而定。因為這些命令共用大部分的選項,所以我們稍候將在一個清單中討論這兩種還原類型(資料庫和記錄檔)的所有選項。
RESTORE 陳述式
執行完整資料庫還原時 RESTORE 陳述式的語法如下:
RESTORE DATABASE database_name
[ FROM backup_device ]
[ WITH options ]
這個陳述式只要求資料庫的檔案名稱和備份所在的位置。
執行檔案和檔案群組還原時陳述式的語法如下:
RESTORE DATABASE database_name
[ FILE = file_name ]
[ FILEGROUP = filegroup_name ]
[ FROM backup_device ]
[ WITH options ]
這個陳述式只要求資料庫名稱、檔案名稱或檔案群組名稱和備份所在的位置。
執行交易記錄還原時陳述式的語法如下:
RESTORE LOG database_name
[ FROM backup_device ]
[ WITH options ]
就如同其他的命令,database_name 是還原將要執行的資料庫名稱。backup_device 參數可以是邏輯備份裝置名稱或實體裝置的名稱。如果要指定一個實體裝置,必須限定它的裝置類型-也就是說,裝置名稱前面必須加上 DISK=、TAPE= 或 PIPE=。可以指定一個或多個裝置,中間以逗號隔開。
--------------------------------------------------------------------------------
說明
如果沒有提供 FORM 子句,還原將無法進行,而且仍然會執行回復(除非執行NORECOVERY 選項)。這項技術可以用來將資料庫設定為回復模式,而不還原其他附加資料。例如,可以執行多個差異還原操作,然後執行 RESTORE 陳述式,不需要 FORM 子句來將資料庫設定為回復模式,就能夠啟動回復過程。
--------------------------------------------------------------------------------
選項
表33-1列出了 RESTORE 命令可用的選項。如您所見,在執行還原操作時,這些選項提供了很大的彈性空間(如果列出的選項只對交易記錄還原有用,將會標示其限制性)。
表33-1 RESTORE 命令選項
選項 說明
RESTRICTED_USER 設定新還原資料庫的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成員才能存取該資料庫。
FILE = file_number 如果在儲存媒體中有多個備份集,可用來識別所使用的備份集。例如設定該數值為2,則使用磁帶上的第二個備份集。
PASSWORD = password 指定儲存備份的密碼。
MEDIANAME =media_name 指定媒體的名稱。
MEDIAPASSWORD = password 指定儲存媒體的密碼。
MOVE 'logical_file_name'
TO 'OS_file_name'
更改還原檔案的位置,例如:MOVE 'Northwind' TO 'D:\data\Northwind.mdf'。如果舊的磁碟無法使用,而需要還原到新的磁碟上時,可以使用這個選項。
NORECOVERY |RECOVERY |
STANDBY = undo_file
NORECOVERY 指定在還原後,交易將無法退回或重新進行。如果將還原其他的備份(差異式備份或交易記錄檔備份),則需要用到這個選項。REVOVERY 為預設選項,它指定執行回復操作,並退回每個沒有提交的變更。STANDBY 指定在還原需要還原情況下,建立還原(undo)檔案。
KEEP_REPLICATION 指定當資料庫還原時復制設定要保存下來。
NOUNLOAD | UNLOAD NOUNLOAD 指定在還原完成後不卸載儲存媒體(例如,覆寫備份磁帶並彈出)。UNLOAD 為預設選項,指定在還原完成後卸載儲存媒體。
REPLACE 指出即使資料檔案已經存在,SQL Server 仍將還原這些檔案。現存的檔案將被刪除和覆寫。如果沒有指定 REPLACE,那麼 SQL Server 將會核對 database_name 是否已經存在。如果已經存在,那麼將終止還原操作。這個安全特性幫助避免無意地將還原覆寫正在工作的資料庫。
RESTART 指定 SQL Server 在還原操作被中斷後重新啟動還原操作。
STATS [ = percentage ] 在還原操作完成了指定的百分率後顯示訊息。如果需要監控操作的過程,這個選項將會很有用。
PARTIAL 指定執行部份還原。
STOPAT = date_time
(log restore only)
指定資料庫回復到 data_time 指定時刻的資料狀態(只對記錄檔還原有效)。
STOPATMARK = 'mark' 指定還原操作進行到標記處。
STOPBEFOREMARK = 'mark' 指定還原操作進行到標記之前。
說明
命名交易(Named transactions)是 SQL Server 2000 中的新功能。它們是使用命令 BEGIN TRANSACTION ... WITH MARK 的 mark_name 選項建立的,特點是可以使用 RESTORE 命令中的 STOPATMARK 和 STOPBEFOREMARK 功能。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
真實世界 使用RESTORE
這里有幾個使用 RESTORE T-SQL 命令的例子。
這個陳述式還原 Example 資料庫的資料檔:
RESTORE DATABASE Example
FROM Backup_Dev_1, Backup_Dev_2
WITH
NORECOVERY,
STATS = 5
GO
這個陳述式還原 Example 資料庫的交易記錄檔:
RESTORE LOG Example
FROM Backup_Dev_3, Backup_Dev_4
WITH
NORECOVERY,
STATS = 5,
UNLOAD
GO
和還原的結果一樣,輸出將顯示操作完成的百分率。將通知還原了多少頁面、還原花了多少時間,以及還原執行的速度(MB/sec)。
現在可用以下的命令回復資料庫:
RESTORE LOG Example
WITH RECOVERY
GO
您將再次看到關於還原操作的統計。
Ⅶ LINQ to SQL模型 是什麼意思
通過使用 LINQ to SQL,您可以使用 LINQ 技術訪問 SQL 資料庫,就像您訪問內存中的集合一樣。
例如,在下面的代碼中,創建了 nw 對象來表示 Northwind 資料庫,將 Customers 表作為目標,篩選出了來自 London 的 Customers 行,並選擇了一個表示 CompanyName 的字元串以進行檢索。
執行循環時,將檢索到 CompanyName 值的集合。
//NorthwndinheritsfromSystem.Data.Linq.DataContext.
Northwndnw=newNorthwnd(@"northwnd.mdf");
//or,
//Northwndnw=newNorthwnd("Database=Northwind;Server=server_name;IntegratedSecurity=SSPI");
varcompanyNameQuery=
fromcustinnw.Customers
wherecust.City=="London"
selectcust.CompanyName;
foreach(varcustomerincompanyNameQuery)
{
Console.WriteLine(customer);
}
我覺得詳細的介紹,你還是直接看MSDN:
http://msdn.microsoft.com/zh-cn/library/bb386976.aspx
Ⅷ linq to sql語句和sql語句一樣嗎
並不一樣,SQL 語句是遵照T-SQL語法的,linq to sql 是使用Linq的,雖然看上去很類似,但關鍵字,查詢方式都完全不一樣,建議你按照MSDN上的教程分別學習。
Ⅸ LINQ TO SQL 和 ADO.NET ENTITY 有什麼區別呢
LINQ to SQL和Entity Framework都是一種包含LINQ功能的對象關系映射技術。他們之間的本質區別在於EF對資料庫架構和查詢的類型實行了更好的解耦。使用EF,查詢的對象不再是完全對應資料庫架構的C#類,而是更高層的抽象:Entity Data Model。這提供了額外的靈活性,但是在性能和簡單性上面也會有所損失。具體二者之間的區別如下:
復雜度:支持越多的特性就會越復雜。LINQ to SQL所支持的特性比較少,所以也就相對不太復雜;而EntityFramework支持的特性比較多,所以相對比較復雜。
模型:LINQ to SQL在數據表與類之間提供了一對一的映射。如果你有Customers,Orders, 和Lineitems表,你就會有Customer,Order, 和Lineitem類來匹配每一個表。EntityFramework可以使你有一個Customer類,而這個類可以匹配多個表。這就意味著公司名可以 在一個表中,但是地址是在另一個表中,而電話號碼又在另一個表中,等等。
資料庫伺服器:LINQ to SQL只支持Microsoft SQL Server 2000及之後的版本,但即使是SQLServer2000也有很多限制。EntityFramework可以支持IBMDB2, Sybase SqlAnywhere, Oracle, SQLAzure,還有其他很多。
開發時間:LINQ to SQL很容易學,開發起來也很快,但是LINQ to SQL有一些限制,在開發較復雜的應用時可能會產生問題。EntityFramework的能力更強,雖然學習及應用起來比較慢,但是對更多的特性的支持使得在開發較復雜的應用時可以使問題最小化。
繼承:LINQ to SQL支持TPH,而EntityFramework支持TPH和TPT,並且對TPC也部分支持。
文件類型:LINQ to SQL使用包含XML的資料庫標記語言(DBML)文件來映射entity與數據表。EntityFramework 使用四個文件。第一個是Entity Data Model (EDMX),這個是在設計器中使用的。在編譯時EDMX文件產生了其他三個文件。另外三個文件中,第一個是ConceptualSchema Definition Language(CSDL)文件,其包含概念模型的XML定義。第二個是SchemaDefinition Language(SSDL)文件,其包含存儲模型的定義。第三個文件是Mapping Specification Language(MSL)文件,其包含概念模型與存儲模型之間的映射。
復雜類型支持:比如說,一個客戶有電話號碼,但你想要電話號碼定義為國家區號,地區號,城市區號,號碼和分機號。LINQto SQL不支持這種復雜類型,而EntityFramework支持。
查詢能力:LINQ to SQL通過DataContext對資料庫進行查詢。EntityFramework通過ObjectContext通過LINQto Entities進行查詢。Entity Framework還提供了ESQL,它是一種類似SQL的查詢語言,很適合在模型定義中定義查詢。EntityFramework還包含了 ObjectQuery類,用於對象服務在運行時動態創建查詢。最後EntityFramework還包含EntityClientProvider,它 用於對概念模型進行查詢。
性能:LINQ to SQL和Entity Framework第一次執行查詢的時候都比較慢,但之後性能都讓人比較滿意。EntityFramework性能要稍微優於LINQto SQL。
完善:微軟在發布了Entity Framework之後就停止了發布新的LINQ to SQL,但由於LINQto SQL的簡單性,它還是很受歡迎的,所以微軟仍將繼續對LINQto SQL的用戶進行支持與反饋,但是LINQto SQL將不再發布新版本進行完善。
由模型生成資料庫:LINQ to SQL沒有能力由模型生成資料庫。Entity Framework支持兩種類型的開發模式,資料庫優先和編碼優先。資料庫優先開發,資料庫已經存在,所以不需要由模型生成資料庫。編碼優先,你要先創建你的模型,然後由模型生成資料庫。