在execute 和 sp_executesql是可以使用临时表的
如果是字符串处理尽量使用sp_executesql,它支持参数的输入 ,也可以定义output类型参数将处理结果输出
在它里面的字符串中的表名不能是变量,或使用表变量 也就是说只要表名的地方出现@xx就认为有错误
不进行替换往下处理,所为不支持表变量.要使用动态表必须在输入前转为表名才可以.在sp_executesql中处理不了.
不同的应用程序建立的同名的临时表或不同存储过程或同一存储过程中的临时表都是不同的,是独立.
系统自动区分和调用各自属于自已的临时表.
比如 : 两个用户同时执行同一个存储过程,在该过程中使用了临时表.
但是这是两个不同的表不会产生混乱的.本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。临时表的名称为 #名称+随机编号,用来区分不同连接建立的同名的临时表.select name from tempdb.dbo.sysobjects where name like '#名称%'
如果是字符串处理尽量使用sp_executesql,它支持参数的输入 ,也可以定义output类型参数将处理结果输出
在它里面的字符串中的表名不能是变量,或使用表变量 也就是说只要表名的地方出现@xx就认为有错误
不进行替换往下处理,所为不支持表变量.要使用动态表必须在输入前转为表名才可以.在sp_executesql中处理不了.
不同的应用程序建立的同名的临时表或不同存储过程或同一存储过程中的临时表都是不同的,是独立.
系统自动区分和调用各自属于自已的临时表.
比如 : 两个用户同时执行同一个存储过程,在该过程中使用了临时表.
但是这是两个不同的表不会产生混乱的.本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。临时表的名称为 #名称+随机编号,用来区分不同连接建立的同名的临时表.select name from tempdb.dbo.sysobjects where name like '#名称%'