亚宁和杨健谁是o:关于动态创建表的存储过程 MS-SQL Server / 基础类 - CSDN社区 com...

来源:百度文库 编辑:中财网 时间:2024/05/06 18:59:52

关于动态创建表的存储过程

我想用参数动态传入表名,动态创建表  
  CREATE   procedure   LP_CreateTab    
  @Tab_NameInfo     varchar(20),  
  @Tab_NameAchv     varchar(20)  
    AS  
  Create   Table   @Tab_NameInfo  
  ( Fd_No                         nvarchar(15),  
  Fd_XL                           nvarchar(10)   ,  
  Fd_Master               nvarchar(10),  
  Fd_StdNo                 nvarchar(3)           primary   key,  
  Fd_StdName       nvarchar(20),  
  Fd_Age                         nvarchar(4)   ,  
  Fd_Zoom                   nvarchar(15),  
  FOREIGN   KEY   (Fd_No)   REFERENCES   Tab_Class  
  )  
  Create   Table   @Tab_NameAchv  
  ( Fd_No                       nvarchar(15),  
  Fd_StdNo             nvarchar(3),  
  Fd_StdName     nvarchar(20),  
  Fd_SubNo             nvarchar(4)   ,  
  Fd_SubName     nvarchar(15),  
  Fd_Credit                   int,  
  Fd_Grd                         float,  
  Fd_KNo                       int,  
  Fd_KFlag                   nvarchar(4)  
  FOREIGN   KEY   (Fd_No)   REFERENCES   Tab_Class  
  )  
  GO  
   
  可是老是报错@Tab_NameInfo出错,为什么要如何解决,谢谢,解决给分  
  问题点数:50、回复次数:3Top

1 楼xluzhong(Ralph)回复于 2005-01-30 21:06:25 得分 50

CREATE   procedure   LP_CreateTab    
  @Tab_NameInfo     varchar(20),  
  @Tab_NameAchv     varchar(20)  
    AS  
  exec('Create   Table   '+@Tab_NameInfo+'  
  ( Fd_No                         nvarchar(15),  
  Fd_XL                           nvarchar(10)   ,  
  Fd_Master               nvarchar(10),  
  Fd_StdNo                 nvarchar(3)           primary   key,  
  Fd_StdName       nvarchar(20),  
  Fd_Age                         nvarchar(4)   ,  
  Fd_Zoom                   nvarchar(15),  
  FOREIGN   KEY   (Fd_No)   REFERENCES   Tab_Class  
  )')  
  exec('Create   Table   '+@Tab_NameAchv+'  
  ( Fd_No                       nvarchar(15),  
  Fd_StdNo             nvarchar(3),  
  Fd_StdName     nvarchar(20),  
  Fd_SubNo             nvarchar(4)   ,  
  Fd_SubName     nvarchar(15),  
  Fd_Credit                   int,  
  Fd_Grd                         float,  
  Fd_KNo                       int,  
  Fd_KFlag                   nvarchar(4)  
  FOREIGN   KEY   (Fd_No)   REFERENCES   Tab_Class  
  )')  
  GOTop

2 楼lipanknight(李)回复于 2005-01-30 21:10:47 得分 0

可以,谢谢,能告诉我为什么吗?Top

3 楼xluzhong(Ralph)回复于 2005-01-30 21:20:52 得分 0

我的理解:  
  对于表名是变量的问题?  
  要用动态的sql    
  要用exec执行Top

相关问题

  • 在SQL SERVER 的存储过程中如何实现动态创建表
  • 请问存储过程是否可以实现创建动态名称的表?
  • 如何用存储过程创建表
  • 在存储过程中能不能动态的创建表,指表名是随机的
  • 用存储过程动态创建表,表的名称是通过参数传递的,怎么传?
  • 怎样在存储过程中创建表,并且表名由参数动态指定?
  • 怎样在存储过程中创建表,并且表名由参数动态指定?
  • 用存储过程动态生成表
  • 存储过程动态建表问题.
  • 动态建表的存储过程