觉得这个函数很实用。
比如:
set newTB=clone(tbName)
set newTB=clone(procName)
set newTB=clone(viewName)觉得自己写的可能会很笨,没有SQL版的朋友们写的好,所以求您的精彩写法,谢谢!

解决方案 »

  1.   

    --直接用SQL语句就可以生成与原对象返回数据集结构一样的新表--表-->表
    select * into 新表名 from tbName where 1=2--视图-->表
    select * into 新表名 from viewName where 1=2--存储过程-->表
    select * into 新表名 from openrowset('sqloledb','Trusted_Connection=yes','exec 数据库名.dbo.存储过程名 参数列表')  where 1=2
    --或
    select * into 新表名 from openrowset('sqloledb','Trusted_Connection=yes','exec 数据库名..存储过程名 参数列表')   where 1=2
    --或
    select * into 新表名 from openrowset('sqloledb','localhost';'sa';'sa的密码','exec 数据库名..存储过程名 参数列表')  where 1=2
    --或
    select * into 新表名 from openrowset('sqloledb','服务器IP地址或服务器名';'sa';'sa的密码','exec 数据库名..存储过程名 参数列表')  where 1=2
      

  2.   

    使用存储过程来实现这样的功能就很简单了。select * into 新表 from 原表,然后不要数据就再执行一句delete from 新表。
      

  3.   

    我喜欢用select * into tablename from table
      

  4.   

    select * into 新表名 from tbName where 1=2这个不能复制主键吧