SQL Server添加數據
在前麵的教訓,我們在我們的數據庫中創建一個表。我們現在有一個數據庫,一張表......但冇有數據。
獲取數據到數據庫有許多方式。以下是主要的方法:
- 手動: 直接輸入數據到表行。
- 複製/粘貼: 類似於以前的選項,但是這一次是從其他來源的數據複製,然後粘貼到你的數據庫中的表。
- 導入: 可以使用導入和導出向導從另一個源導入數據。
- SQL腳本: 可以運行一個包含所有數據插入SQL腳本。
- 應用/網站: 使用者通過下列方式:應用程序或網站更新數據庫。
這裡是每個這些方法的更多細節介紹。
手動
我們可以使用編輯前200行選項手動直接輸入數據到表行。
手動輸入的數據是確定的,如果數據一點點進入。但它是一個有點笨重,可以不切實際,如果是大量的數據。 再加上它並冇有真正滿足大多數業務需求,其中非技術用戶需要能夠更新數據庫。
在任何情況下,這裡顯示如何手工直接輸入數據到表:
-
在對象資源管理器中,右鍵點擊你要打開的表,然後選擇編輯前200行:
-
現在你可以開始直接輸入數據到表中。
需要注意的是在使用我們剛剛創建的表,我們並不需要輸入數據到TaskId 和dateCreated這兩列。 這是因為他們將被自動填充(請記住,我們設置TASKID是唯一標識並且dateCreated會以(GetDate()))填充。 無需為StatusId輸入任何東西,因為我們還冇有創建狀態表,再加上我們的表設計使該字段為空(我們選擇允許空值)。
複製/粘貼
可以通過從另一數據源複製並粘貼到數據庫表使用類似的方法,以上述內容。當然,這將需要在源表具有相同的列的目標表。類似於上麵的手動方法中,這是行一個小數量的記錄,但不適合大量的記錄。
以下是如何複製/粘貼到表:
- 從數據源所需的所有記錄
- 在目標數據庫(例如:一個要填充數據),目標表上單擊鼠標右鍵,然後選擇編輯前200行
-
在最左邊的列(它更是一個按鈕,最左邊的列的左側,可以選擇整個行),然後從上下文菜單中選擇粘貼,選擇通過右鍵單擊一個空行:
如果需要粘貼超過200行,單擊顯示SQL窗格圖標,從工具欄中顯示的SQL語句顯示後麵200行。簡單地根據需要在200改變為行的數量較多。
需要注意的是,這種方式可在一定程度上,但你可能會遇到這麼多數據傳輸需要執行多次,或需要使用其他方法。
導入
可以從另一個數據源導入數據。最終的結果是相似的拷貝/粘貼方法(即數據在到目標數據庫中複製),但在導入數據更加靈活,可以更合適於許多場合。例如,您可以選擇從多個視圖和表中的數據,可以寫一個查詢就可以導入需要的數據。
要導入數據,在數據庫上單擊鼠標右鍵,並選擇Tasks > Import Data... 並從那裡按照向導執行操作。
在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腳本。