因为开发需要,建立一个可以根据表名不同,而insert的存储过程,目前的代码如下,运行测试时,有如下问题,望牛人提供解决方法!急!急!
本人感觉是代码:"set @sql=^^^^^^^" 的时候整个参数为字符串型,所导致的问题.(提示开始):
服务器: 消息 245,级别 16,状态 1,过程 insert_MainList_For_CityName,行 24
转换为数据类型为 int 的列时发生语法错误。
(提示结束):建表语句
/****** 对象:  Table [dbo].[GUANGXI_MainList]    脚本日期: 12/26/2007 17:48:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[GUANGXI_MainList]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
CREATE TABLE [dbo].[GUANGXI_MainList](
[id] [int] IDENTITY(1,1) NOT NULL,
[sToneID] [char](30) NULL,
[sToneName] [char](100) NOT NULL,
[sSpName] [char](50) NULL,
[sSingerName] [char](100) NOT NULL,
[nDownloadTimes] [int] NOT NULL CONSTRAINT [DF_GUANGXI_MainList_nDownloadTimes]  DEFAULT ((0)),
[nGiftTimes] [int] NULL CONSTRAINT [DF_GUANGXI_MainList_nGiftTimes]  DEFAULT ((0)),
[fPrice] [float] NOT NULL CONSTRAINT [DF_GUANGXI_MainList_fPrice]  DEFAULT ((0.00)),
[dtValidDate] [datetime] NULL,
[sToneCategory] [char](20) NULL,
[dtReceiveTime] [datetime] NULL,
[dtDoneTime] [datetime] NULL,
[dtBatchTime] [datetime] NULL,
 CONSTRAINT [PK_GUANGXI_MainList] PRIMARY KEY CLUSTERED 
(
[id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_PADDING OFF
GO创建存储过程语句--输入城市_MainList表的城市参数,根据城市,选择表(对所有表的输入全都整合到一个存储过程中,根据参数进行操作)
alter procedure insert_MainList_For_CityName
@cityname varchar(20),
@stoneid char(30),
@stonename char(100),
@sspname char(50),
@ssingername char(100),
@ndownloadtimes varchar(10),
@ngifttimes int,
@fprice float,
@dtvaliddate datetime,
@stonecategory char(20),
@dtreceivetime datetime,
@dtbatchtime datetime
as
begin
declare @tabname varchar(40), @sql varchar(1000)
set @tabname=@cityname+'_MainList' print @ndownloadtimes
print @tabname set @sql='insert into '+@tabname+' values '+'('+@stoneid+','+@stonename+','+@sspname+','+@ssingername+','+@ndownloadtimes+','+@ngifttimes+','+@fprice+','+@dtvaliddate+','+@stonecategory+','+@dtreceivetime+','+@dtbatchtime+')'

print @sql

exec(@sql) print @@errorend
测试执行 存储过程 exec insert_MainList_For_CityName 
'TIANJIN',
'9020060533',
'一个人喝着拿铁',
'无线首发',
'袁泉',
'1',
'2',
'2.0',
'2008-1-2 14:07:51',
'流行',
'2008-1-2 14:07:51',
'2008-1-2 14:07:51'