sqlserver怎么生成log文件?
1.打開企業管理器,打開要導入數據的數據庫,右鍵點擊表格,所有任務-導入數據,會彈出DTS導入/導出向導。單擊下一步。
2.選擇MicrosoftExcel97-2000作為數據源,選擇要導入的xls文件作為文件名,然后單擊下一步。
3.選擇MicrosoftOLEDBproviderforSQLServer。服務器選擇本地(如果是本地數據庫,比如VVV),使用SQLServer認證,用戶名sa,密碼為空,數據庫選擇導入數據的數據庫(比如客戶端)。單擊下一步。
4.選擇一個查詢以指定要傳輸的數據,然后單擊下一步。
5.按查詢生成器。在源表列表中,有要導入的xls文件的列。將每列添加到右側的選定列列表中。一定要注意這一步。添加列的順序必須與數據庫中定義的字段的順序相同,否則會出錯。單擊下一步。
6.選擇要排列數據的順序。在這一步中選擇的列是查詢語句中orderby后面的列。單擊下一步。
7.如果要導入所有行,請選擇所有行,然后單擊下一步。
8.您將看到根據前面的操作生成的查詢語句。確認正確后,單擊下一步。
9.您將看到表格/工作表/Exc
sqlserver創建臨時表的使用說明?
臨時表生成:A:selectinto和b:createtableinsertinto。
A比b快很多,但是A會鎖定tempdb的SYSOBJECTS、SYSINDEXES、SYSCOLUMNS表,在多用戶并發的情況下很容易阻塞其他進程。
2.b用于并發系統。在大量的單語句中使用。
如何創建臨時表:
方法1:
Createtable#臨時表名(字段1約束、
字段2約束,
.....)
創建表##臨時表名(字段1約束、
字段2約束,
.....)
方法二:
從您的表中選擇*into#臨時表名。
Select*into#臨時表名來自你的表。
注:以上#代表局部臨時表,##代表全局臨時表。
詢問工作單元表
Select*from#臨時表名
Select*from##臨時表名
刪除臨時表
刪除表#臨時表名
刪除表##臨時表名
SQLSERVER臨時表的使用
droptable#Tmp-Deletetemporarytable#Tmp-Createtemporarytable#Tmp(IDintidentity(1,1)notnull,-CreatecolumnID,每次添加新記錄時添加1WokNovarchar(50)。主鍵(ID)-定義ID為臨時表的主鍵#Tmp)Select*from#Tmp-查詢臨時表的數據truncatetable#Tmp-清除臨時表的所有數據和約束。
相關示例:
Declare@woknovarchar(500)-用于記錄雇員號Declare@StrNVarchar(4000)-用于存儲查詢語句declare@countint-Find記錄總數Declare@IintSet@i0Select@CountCount(distinct(Wokno))from#TmpWhile@Ilt@CountBeginSet@StrSelecttop1@WoknoWoknofrom#TmpWhereidnotin(SelecttopStr(@I)idfrom#Tmp)ExecSp_executeSQL@Str,varchar(500)
工作單元表
您可以創建本地和全局臨時表。本地臨時表僅在當前會話中可見;全局臨時表在所有會話中都可見。
本地臨時表的名稱前面有一個數字符號(#table_name),而全局臨時表的名稱前面有兩個數字符號(#table_name)。
SQL語句使用CREATETABLE語句中為table_name指定的名稱來引用臨時表:
創建表#MyTempTable(colaINT主鍵)
插入到#MyTempTable值(1)
如果本臨時表是由存儲過程或由多個用戶同時執行的應用程序創建的,因此SQLServer必須能夠區分不同用戶創建的表。為此,SQLServer會在每個本地臨時表的表名后面附加一個數字后綴。存儲在tempdb數據庫的sysobjects表中的臨時表的全名由CREATETABLE語句中指定的表名和系統生成的數字后綴組成。為了允許后綴,為本地臨時表指定的表名table_name不能超過116個字符。
除非使用DROPTABLE語句顯式刪除臨時表,否則臨時表將在退出其作用域時被系統自動刪除:
當存儲過程完成時,在存儲過程中創建的本地臨時表將被自動刪除。創建該表的存儲過程所執行的所有嵌套存儲過程都可以引用該表。但是,調用創建該表的存儲過程的進程不能引用該表。
在當前會話結束時,所有其他本地臨時表都將被自動刪除。
當創建該表的會話結束并且其他任務停止引用該表時,全局臨時表將被自動刪除。任務和表之間的關聯僅在單個Transact-SQL語句的生命周期內維護。換句話說,當創建全局臨時表的會話結束時,該表將在引用該表的最后一條Transact-SQL語句完成后自動刪除。
在存儲過程或觸發器中創建的本地臨時表不同于在調用存儲過程或觸發器之前創建的同名臨時表。如果查詢引用了一個臨時表,并且有兩個臨時表具有相同的名稱,則沒有定義要對哪個表進行查詢。嵌套存儲過程還可以創建與調用它的存儲過程所創建的臨時表同名的臨時表。嵌套存儲過程中對表名的所有引用都被解釋為為嵌套過程創建的表,例如:
創建過程Test2作為CREATETABLE#t(xINTPRIMARYKEY)INSERTINTO#tVALUES(2)SELECTTest2colxFROM#tGO創建過程Test1作為CREATETABLE#t(xINTPRIMARYKEY)INSERTINTO#tVALUES(1)SELECTTest1colxFROM#tEXECTest2GO創建TABLE#t(xINTPRIMARYKEY)INSERTINTO#tVALUES(99)GOEXECTest1GO
以下是結果集:
(1行受影響)
遙測結果計算站t1列
-
一個
(1行受影響)
Test2Col
-
2
創建本地或全局臨時表時,CREATETABLE語法支持除外鍵約束之外的所有約束定義。如果在臨時表中指定了外鍵約束,該語句將返回一條警告消息,指出該約束已被忽略,并且仍將創建沒有外鍵約束的表。不能在外鍵約束中引用臨時表。
考慮使用表變量而不是臨時表。當需要在臨時表上顯式創建索引時,或者當多個存儲過程或函數需要使用表值時,臨時表非常有用。通常,表變量提供更有效的查詢處理。