怎么在存储过程中创建动态的表 用EXEC('create table +'@tablename+') 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在的问题是运行上面的存储过程,他说在第十行CREATE TABLE @TableName中出错啊,我就不知道为什么会出错啊 动态的创建表不能那样写的。你也可以这样declare @sql varchar(8000)set @sql='create table'set @sql=@sql+'@tablename' +'( [SerialNum] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [CrossingSn] [int] NULL , [CarBoard] [char] (15) COLLATE Chinese_PRC_CI_AS NULL , [BoardColorSn] [int] NULL , [CarStyleSn] [int] NULL , [ChargeStyleSn] [int] NULL , [ChargeTypeSn] [int] NULL , [CarColorSn] [int] NULL , [PassTime] [datetime] NULL , [ViolationSn] [int] NULL , [AlarmStyleSn] [int] NULL , [InputState] [tinyint] NULL , [DataState] [int] NULL , [TimeSinceRed] [int] NULL , [FileName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL , [Offset] [bigint] NULL , [NearFileLen] [bigint] NULL , [FarOneFileLen] [bigint] NULL , [FarTwoFileLen] [bigint] NULL , [FarThreeFileLen] [bigint] NULL , [RunDirection] [int] NULL , [CarSpeed] [float] NULL , [CarLength] [int] NULL , [FirstPosition] [int] NULL , [SecondPosition] [int] NULL , [PassUseTime] [int] NULL , [OperatorSn] [int] NULL , [AmendTime] [datetime] NULL , [SendTime] [datetime] NULL , [Reserve] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [Re] [char] (32) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]'exec(@sql) declare @sql varchar(8000)set @sql='create table '+'@tablename' +' ( [SerialNum] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [CrossingSn] [int] NULL , [CarBoard] [char] (15) COLLATE Chinese_PRC_CI_AS NULL , [BoardColorSn] [int] NULL , [CarStyleSn] [int] NULL , [ChargeStyleSn] [int] NULL , [ChargeTypeSn] [int] NULL , [CarColorSn] [int] NULL , [PassTime] [datetime] NULL , [ViolationSn] [int] NULL , [AlarmStyleSn] [int] NULL , [InputState] [tinyint] NULL , [DataState] [int] NULL , [TimeSinceRed] [int] NULL , [FileName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL , [Offset] [bigint] NULL , [NearFileLen] [bigint] NULL , [FarOneFileLen] [bigint] NULL , [FarTwoFileLen] [bigint] NULL , [FarThreeFileLen] [bigint] NULL , [RunDirection] [int] NULL , [CarSpeed] [float] NULL , [CarLength] [int] NULL , [FirstPosition] [int] NULL , [SecondPosition] [int] NULL , [PassUseTime] [int] NULL , [OperatorSn] [int] NULL , [AmendTime] [datetime] NULL , [SendTime] [datetime] NULL , [Reserve] [char] (50) COLLATE Chinese_PRC_CI_AS NULL , [Re] [char] (32) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]'exec(@sql) 1.存儲過程用臨時表實現,create table #tablename...2.用樓上的方法,EXEC('create table +'@tablename+'),先生成建表字符串,再通過EXEC('...')執行。 sql server 2008如何获取数据库的详细信息 这样的sql如何写 大家都用SQL Server2000还是2005? 如何获取具有最多且同名的记录? MS-SQL道具保存 在20万条gps数据中查找最接近给定纬度和经度值的一条数据 新手提问数据库操作问题。 关于SQL连接异常的异常。求助。 谁有关于Sqlserver OLAP建立数据仓库的资料啊?高分送! 请问在sql server 7.0(客户端)中连接时出时数据超时过期 求救数据表的基础操作!!!! 请问大家有没有关于ADO、ODBC数据库访问规范的资料
我就不知道为什么会出错啊
你也可以这样
declare @sql varchar(8000)
set @sql='create table'
set @sql=@sql+'@tablename' +'
(
[SerialNum] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[CrossingSn] [int] NULL ,
[CarBoard] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[BoardColorSn] [int] NULL ,
[CarStyleSn] [int] NULL ,
[ChargeStyleSn] [int] NULL ,
[ChargeTypeSn] [int] NULL ,
[CarColorSn] [int] NULL ,
[PassTime] [datetime] NULL ,
[ViolationSn] [int] NULL ,
[AlarmStyleSn] [int] NULL ,
[InputState] [tinyint] NULL ,
[DataState] [int] NULL ,
[TimeSinceRed] [int] NULL ,
[FileName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Offset] [bigint] NULL ,
[NearFileLen] [bigint] NULL ,
[FarOneFileLen] [bigint] NULL ,
[FarTwoFileLen] [bigint] NULL ,
[FarThreeFileLen] [bigint] NULL ,
[RunDirection] [int] NULL ,
[CarSpeed] [float] NULL ,
[CarLength] [int] NULL ,
[FirstPosition] [int] NULL ,
[SecondPosition] [int] NULL ,
[PassUseTime] [int] NULL ,
[OperatorSn] [int] NULL ,
[AmendTime] [datetime] NULL ,
[SendTime] [datetime] NULL ,
[Reserve] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Re] [char] (32) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
'
exec(@sql)
set @sql='create table '+'@tablename' +'
(
[SerialNum] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[CrossingSn] [int] NULL ,
[CarBoard] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[BoardColorSn] [int] NULL ,
[CarStyleSn] [int] NULL ,
[ChargeStyleSn] [int] NULL ,
[ChargeTypeSn] [int] NULL ,
[CarColorSn] [int] NULL ,
[PassTime] [datetime] NULL ,
[ViolationSn] [int] NULL ,
[AlarmStyleSn] [int] NULL ,
[InputState] [tinyint] NULL ,
[DataState] [int] NULL ,
[TimeSinceRed] [int] NULL ,
[FileName] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Offset] [bigint] NULL ,
[NearFileLen] [bigint] NULL ,
[FarOneFileLen] [bigint] NULL ,
[FarTwoFileLen] [bigint] NULL ,
[FarThreeFileLen] [bigint] NULL ,
[RunDirection] [int] NULL ,
[CarSpeed] [float] NULL ,
[CarLength] [int] NULL ,
[FirstPosition] [int] NULL ,
[SecondPosition] [int] NULL ,
[PassUseTime] [int] NULL ,
[OperatorSn] [int] NULL ,
[AmendTime] [datetime] NULL ,
[SendTime] [datetime] NULL ,
[Reserve] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Re] [char] (32) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
'
exec(@sql)
2.用樓上的方法,EXEC('create table +'@tablename+'),先生成建表字符串,再通過
EXEC('...')執行。