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语法支持除外键约束之外的所有约束定义。如果在临时表中指定了外键约束,该语句将返回一条警告消息,指出该约束已被忽略,并且仍将创建没有外键约束的表。不能在外键约束中引用临时表。
考虑使用表变量而不是临时表。当需要在临时表上显式创建索引时,或者当多个存储过程或函数需要使用表值时,临时表非常有用。通常,表变量提供更有效的查询处理。