SQL Server新增資料


在前面的教訓,我們在我們的資料庫中建立一個表。我們現在有一個資料庫,一張表......但沒有資料。

獲取資料到資料庫有許多方式。以下是主要的方法:

  • 手動: 直接輸入資料到錶行。
  • 複製/貼上: 類似於以前的選項,但是這一次是從其他來源的資料複製,然後貼上到你的資料庫中的表。
  • 匯入: 可以使用匯入和匯出嚮導從另一個源匯入資料。
  • SQL指令碼: 可以執行一個包含所有資料插入SQL指令碼。
  • 應用/網站: 使用者通過下列方式:應用程式或網站更新資料庫。

這裡是每個這些方法的更多細節介紹。

手動

我們可以使用編輯前200行選項手動直接輸入資料到錶行。

手動輸入的資料是確定的,如果資料一點點進入。但它是一個有點笨重,可以不切實際,如果是大量的資料。 再加上它並沒有真正滿足大多數業務需求,其中非技術使用者需要能夠更新資料庫。

在任何情況下,這裡顯示如何手工直接輸入資料到表:

  1. 在物件資源管理器中,右鍵點選你要開啟的表,然後選擇編輯前200行:
    Screenshot of editing the top 200 rows of a table in SSMS
  2. 現在你可以開始直接輸入資料到表中。

    需要注意的是在使用我們剛剛建立的表,我們並不需要輸入資料到TaskId 和dateCreated這兩列。 這是因為他們將被自動填充(請記住,我們設定TASKID是唯一標識並且dateCreated會以(GetDate()))填充。 無需為StatusId輸入任何東西,因為我們還沒有建立狀態表,再加上我們的表設計使該欄位為空(我們選擇允許空值)。

    Screenshot of editing the top 200 rows of a table in SSMS

複製/貼上

可以通過從另一資料源複製並貼上到資料庫表使用類似的方法,以上述內容。當然,這將需要在源表具有相同的列的目標表。類似於上面的手動方法中,這是行一個小數量的記錄,但不適合大量的記錄。

以下是如何複製/貼上到表:

  1. 從資料源所需的所有記錄
  2. 在目標資料庫(例如:一個要填充資料),目標表上單擊滑鼠右鍵,然後選擇編輯前200行
  3. 在最左邊的列(它更是一個按鈕,最左邊的列的左側,可以選擇整個行),然後從上下文選單中選擇貼上,選擇通過右鍵單擊一個空行:
    Screenshot of pasting data into a table in SSMS

如果需要貼上超過200行,單擊顯示SQL窗格圖示,從工具列中顯示的SQL語句顯示後面200行。簡單地根據需要在200改變為行的數量較多。
Screenshot of pasting data into a table in SSMS

需要注意的是,這種方式可在一定程度上,但你可能會遇到這麼多資料傳輸需要執行多次,或需要使用其他方法。

匯入

可以從另一個資料源匯入資料。最終的結果是相似的拷貝/貼上方法(即資料在到目標資料庫中複製),但在匯入資料更加靈活,可以更合適於許多場合。例如,您可以選擇從多個檢視和表中的資料,可以寫一個查詢就可以匯入需要的資料。

要匯入資料,在資料庫上單擊滑鼠右鍵,並選擇Tasks > Import Data... 並從那裡按照向導執行操作。

Screenshot of selecting the Import Data option

在SQL Server匯入和匯出嚮導資料,可以將資料複製到並從其中一個託管的.NET Framework資料提供程式或本機OLE DB提供程式可用的任何資料源。這些包括:

  • SQL Server
  • 普通檔案
  • Microsoft Office Access
  • Microsoft Office Excel

您也可以從Windows開始選單中啟動SQL Server匯入和匯出嚮導,從內部SQL Server資料工具(SSDT),並通過在命令提示字元(通過執行DTSWizard.exe,你可能會找到在:C:Program FilesMicrosoft SQL Server100DTSBinn or inC:Program FilesMicrosoft SQL Server120DTSBinn 或其他位置,具體取決於您的組態和驅動器碟符)。

SQL指令碼

在很多情況下,你會發現它更有效地執行包含需要插入資料的SQL指令碼。您可以使用SQL INSERT語句插入語句,指定資料。

SQL指令碼是偉大的靜態插入/參照資料(如說,國家/地區)。它們可以儲存並重新執行需要它的任何時間(例如在另一資料庫)。指令碼通常不進行資料的不斷變化(如客戶詳細資訊)那麼好。你可能不會被保留過時的資料在一個副本的SQL指令碼。但總有例外。例如,你可以使用這樣一個指令碼來填充客戶表,用於測試/開發環境。

更多關於SQL指令碼來了。

應用/網站

大多數的SQL Server資料庫後端資料儲存為一個前端應用程式。該應用程式的使用者負責將資料新增到資料庫(以編輯)。 因此,許多表中您的資料庫將通過應用程式進行更新。在這種情況下,應用程式被更新是使用SQL指令碼到資料庫。

這些指令碼和那些我們上面討論的區別在於,在應用程式正在使用的指令碼將是動態的。他們將接受資料作為傳遞給指令碼的引數。因此,使用者可以輸入,電子郵件地址到應用程式中,但他並不知情在應用程式執行的SQL指令碼,需要他的電子郵件地址,驗證它,把它新增到指令碼,如果通過了所有的業務/驗證規則,最後將其插入到資料庫中。

這些SQL指令碼可以直接放置到您的網站的程式碼(PHP,ColdFusion的等),也可以將它們儲存在資料庫中的儲存過程或檢視。

看到作為SQL指令碼SQL伺服器(以及大多數其他資料庫管理系統),這樣的一個組成部分,接下來我們將仔細看看SQL指令碼。