--定义全局临时表
declare @temp table(id int identity,辅助项部门 nvarchar(100),客户 nvarchar (100),
项目名称 nvarchar (100),辅助项的销售业务类别 nvarchar (100),科目名称 nvarchar (100),
借方金额 float ,贷方金额 float)
--定义科目表
declare @tempTable table( 科目名称 nvarchar (100))
--定义科目表行数,行索引,定义列名,定义sql语句
declare @RowCount int, @RowIndex int ,@ColumnName nvarchar (50),@Sql nvarchar(1000)
--定义游标
declare myCursor Cursor for select * from @tempTable--填充全局数据表
insert into @temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a--填充科目表
insert into @tempTable select * from
(select
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称'
from GL_accvouch) aa
group by 科目名称--取科目表行数
select @RowCount = count(*) from @tempTable--打开索引,循环向全局表中插入新列
open myCursorfetch next from myCursor into @ColumnNamewhile @@fetch_status = 0
begin
set @Sql = 'alter table @temp add ' + @ColumnName + ' nvarchar(50) default null'
print @Sql
exec(@sql)
fetch next from myCursor into @ColumnName
endclose myCursor
deallocate myCursor--返回全局表
select * from @temp
执行时报错
(144 行受影响)(38 行受影响)
alter table exec(@temp) add 09年其他应付款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 09年以前其他应付款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 办公设备 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司未开发票应付业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司未开发票预收业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票应付非业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票应付业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票预收业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司应收账款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 本年利润 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 短期借款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
declare @temp table(id int identity,辅助项部门 nvarchar(100),客户 nvarchar (100),
项目名称 nvarchar (100),辅助项的销售业务类别 nvarchar (100),科目名称 nvarchar (100),
借方金额 float ,贷方金额 float)
--定义科目表
declare @tempTable table( 科目名称 nvarchar (100))
--定义科目表行数,行索引,定义列名,定义sql语句
declare @RowCount int, @RowIndex int ,@ColumnName nvarchar (50),@Sql nvarchar(1000)
--定义游标
declare myCursor Cursor for select * from @tempTable--填充全局数据表
insert into @temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a--填充科目表
insert into @tempTable select * from
(select
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称'
from GL_accvouch) aa
group by 科目名称--取科目表行数
select @RowCount = count(*) from @tempTable--打开索引,循环向全局表中插入新列
open myCursorfetch next from myCursor into @ColumnNamewhile @@fetch_status = 0
begin
set @Sql = 'alter table @temp add ' + @ColumnName + ' nvarchar(50) default null'
print @Sql
exec(@sql)
fetch next from myCursor into @ColumnName
endclose myCursor
deallocate myCursor--返回全局表
select * from @temp
执行时报错
(144 行受影响)(38 行受影响)
alter table exec(@temp) add 09年其他应付款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 09年以前其他应付款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 办公设备 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司未开发票应付业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司未开发票预收业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票应付非业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票应付业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司已开发票预收业务款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 北京公司应收账款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 本年利润 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
alter table exec(@temp) add 短期借款 nvarchar(50) default null
消息 156,级别 15,状态 1,第 1 行
在关键字 'exec' 附近有语法错误。
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@temp'。
解决方案 »
- 如何提供迅雷下载地址?
- {"Fill: SelectCommand.Connection 属性尚未初始化。"}
- <input name=ProductName type=text class=INPUT1 size=3> 这个文本框(不能加Runat="serever" ),从服务器端给他赋值呢???
- 在线高分求解 httpWebRequest 问题
- 请教:看了些文章.ascx文章中能包含部分WEB窗体控件如Repeater等。却不能包含Button等
- 关于DataGrid 中嵌入两个dropdownlist的问题
- 一个网页问题
- MVC无法找到资源
- AMD处理器编译VS.net 2003项目出现的奇怪问题
- 不重复的随机数怎么弄
- 问两个经典题目。
- 母版页的问题
declare @tempTable table( 科目名称 nvarchar (100))
--定义科目表行数,行索引,定义列名,定义sql语句
declare @RowCount int, @RowIndex int ,@ColumnName nvarchar (50),@Sql nvarchar(1000)
--定义游标
declare myCursor Cursor for select * from @tempTable --填充全局数据表
insert into #temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a --填充科目表
insert into @tempTable select * from
(select
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称'
from GL_accvouch) aa
group by 科目名称 --取科目表行数
select @RowCount = count(*) from @tempTable --打开索引,循环向全局表中插入新列
open myCursor fetch next from myCursor into @ColumnName while @@fetch_status = 0
begin
alter table #temp add @ColumnName nvarchar(50) default null
end close myCursor
deallocate myCursor --返回全局表
select * from #tempdrop table #temp
试试
declare @temp table(id int identity,辅助项部门 nvarchar(100),客户 nvarchar (100),
项目名称 nvarchar (100),辅助项的销售业务类别 nvarchar (100),科目名称 nvarchar (100),
借方金额 float ,贷方金额 float)
--定义科目表
declare @tempTable table( 科目名称 nvarchar (100))
--定义科目表行数,行索引,定义列名,定义sql语句
declare @RowCount int, @RowIndex int ,@ColumnName nvarchar (50),@Sql nvarchar(1000)
--定义游标
declare myCursor Cursor for select * from @tempTable --填充全局数据表
insert into @temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a --填充科目表
insert into @tempTable select * from
(select
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称'
from GL_accvouch) aa
group by 科目名称 --取科目表行数
select @RowCount = count(*) from @tempTable --打开索引,循环向全局表中插入新列
open myCursor fetch next from myCursor into @ColumnName while @@fetch_status = 0
begin
--该字段名称可能为数字开头的。所有要转换。
set @Sql = 'alter table @temp add [' + @ColumnName + '] nvarchar(50) default null'
--改的就是这句。
print @Sql
exec(@sql)
fetch next from myCursor into @ColumnName
end close myCursor
deallocate myCursor --返回全局表
select * from @temp
//楼主请及时结贴哦。
--楼主请及时结贴哦
消息 207,级别 16,状态 3,第 39 行
列名 '#temp' 无效。还有begin 和 end 之间 要改成那个样子吗
不知道我的分析对不对,仅供参考
insert into #temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a
就创建了表结构
create table #temp (id int identity,辅助项部门 nvarchar(100),客户 nvarchar (100),
项目名称 nvarchar (100),辅助项的销售业务类别 nvarchar (100),科目名称 nvarchar (100),
借方金额 float ,贷方金额 float)
--定义科目表
declare @tempTable table( 科目名称 nvarchar (100))
--定义科目表行数,行索引,定义列名,定义sql语句
declare @RowCount int, @RowIndex int ,@ColumnName nvarchar (50),@Sql nvarchar(1000)
--定义游标
declare myCursor Cursor for select * from @tempTable --填充全局数据表
insert into #temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a --填充科目表
insert into @tempTable select * from
(select
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称'
from GL_accvouch) aa
group by 科目名称 --取科目表行数
select @RowCount = count(*) from @tempTable --打开索引,循环向全局表中插入新列
open myCursor fetch next from myCursor into @ColumnName while @@fetch_status = 0
begin
set @Sql = 'alter table #temp add ' + @ColumnName + ' nvarchar(50) default null'
print @Sql
exec(@sql)
fetch next from myCursor into @ColumnName
end close myCursor
deallocate myCursor --返回全局表
select * from #temp
set @Sql = 'alter table @temp add [' + @ColumnName + '] nvarchar(50) default null'
不行啊,说@temp附近有语法错误,难道那个@temp是写在字符串里面的,还是写在外面啊,像这样
'alter table ‘ +@temp+ ’
exec(@Sql)
FETCH NEXT FROM myCursor
begin 和end之间修改为这个
--填充全局数据表
insert into #temp select * from( select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch ) a 你去检查下数据,看看
select
(select cDepName from Department where cDepCode=cdept_id) as '辅助项部门',
(select cCusName from Customer where cCusCode=ccus_id) as '客户',
(select citemname from fitemss97 where fitemss97.citemcode=GL_accvouch.citem_id) as '项目名称',
cDefine2 as '辅助项的销售业务类别',
(select ccode_name from code where code.ccode=GL_accvouch.ccode) as '科目名称',
md as '借方金额',
mc as '贷方金额' from GL_accvouch
得到什么,是否字段长度大于100了
mc as '贷方金额' 不是float