语法错误:
create table #t1(name varchar(10))

解决方案 »

  1.   

    哦,知道了,如果要创建临时表,可能要把自定义类型建在tempdb数据库里面,楼主去试试吧
      

  2.   

    谢谢楼上的
    可惜数据库是别人设计好的,我是没权利改变了。
    昨天给他们发了个mail,他们也用基本数据类型,呵呵,不管了
    谢谢楼上的。
    还要问一句,declare table()是临时表吗?和create table()有什么区别?
      

  3.   

    declare声明的是表变量,跟普通变量一样只在内存中
      

  4.   

    CREATE TABLE #T1(...)
    也是在内存中吧,因为存储过程结束了我在想查询就找不到了
      

  5.   

    CREATE TABLE #T1(...)
    在tempdb数据库中,存储过程结束自动删除而已.
    在自动删除前,你可以用下面的语句在tempdb数据库中查到它在的证据:
    select * from tempdb..sysobjects where name like '#t1%'
      

  6.   

    临时表
    也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。