Cursorfetch: INTO 列表中声明的变量数目必须与所选列的数目相同
create proc p_contact
as
declare @fcmn varchar(100)
declare @dbid varchar(200)
declare @fan varchar(200)
declare @sql varchar(2000)
Declare Table_contact cursor for --定义游标
select cpname,AccountName from T_unit_account
open table_contact--打开游标
fetch next from Table_contact into @fcmn,@fan,@DBID-- 匹配第一条记录
while (@@FETCH_STATUS=0)-- 读取游标状态,循环
begin
set @sql ='insert into datacollection.dbo.t_rp_contact
(FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,FCompanyName,Faccountname)
select
FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,'''+@fcmn+''','''+@fan+'''
from '+@dbid+'.dbo.t_rp_contact trpc
where not exists(select 1 from datacollection.dbo.t_rp_contact trp where trp.FCompanyName='''+@fcmn+''',trp.Faccountname='''+@fcmn+''' and trp.FID=trpc.FID)'
exec(@sql)
fetch next from Table_contact into @fcmn,@fan,@dbid
end
报错
Cursorfetch: INTO 列表中声明的变量数目必须与所选列的数目相同
as
declare @fcmn varchar(100)
declare @dbid varchar(200)
declare @fan varchar(200)
declare @sql varchar(2000)
Declare Table_contact cursor for --定义游标
select cpname,AccountName from T_unit_account
open table_contact--打开游标
fetch next from Table_contact into @fcmn,@fan,@DBID-- 匹配第一条记录
while (@@FETCH_STATUS=0)-- 读取游标状态,循环
begin
set @sql ='insert into datacollection.dbo.t_rp_contact
(FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,FCompanyName,Faccountname)
select
FID,FPeriod,FRP,FType,FDate,FFincDate,
FNumber,FCustomer,FDepartment,FEmployee,FCurrencyID,FExchangeRate,FAmount,FAmountFor
,FRemainAmount,FRemainAmountFor,FContractNo,FInvoiceID,FRPBillID,FBillID,FBegID,
FExpenseID,FBussinessDiscount,FCashDiscount,FRPDate,FSuperDays,FDirectSale,FSaleBackAmount,
FSaleBackAmountFor,FDue,FIsBad,FBadReason,FVoucherID,FGroupID,FAccountID,FIsInit,
FStatus,FPost,FToBal,FPre,FK3Import,FInterestRate,FCheckType,FBillType,FInvoiceType,
FItemClassID,FExplanation,FSmInvID,FPreparer,UUID,'''+@fcmn+''','''+@fan+'''
from '+@dbid+'.dbo.t_rp_contact trpc
where not exists(select 1 from datacollection.dbo.t_rp_contact trp where trp.FCompanyName='''+@fcmn+''',trp.Faccountname='''+@fcmn+''' and trp.FID=trpc.FID)'
exec(@sql)
fetch next from Table_contact into @fcmn,@fan,@dbid
end
报错
Cursorfetch: INTO 列表中声明的变量数目必须与所选列的数目相同
...全文
相关推荐
删除重复记录,并且剩下一条
以下是一个示例,它使用了T-SQL(Transact-SQL)语法,这是SQL Server所使用的语言:首先,创建一个临时表`tmpA`,其结构与原始表`dbo.品种描述$`相同,但不包含任何数据。
从数据库中批量提取数据
Declare XM_Cursor CURSOR FOR SELECT XM,ID FROM JCXX WHERE XM LIKE '%(%'OPEN XM_CursorFETCH FROM X
关于查看MSSQL 数据库 用户每个表 占用的空间大小
OBJECTPROPERTY(o.id, N'IsTable') = 1AND o.name NOT LIKE N'#%%' -- 排除以#开头的临时表ORDER BY o.nameOPEN Info_cursorFETCH
实用sql语句:查询结果导出到excel_收缩数据库.doc
下面是一个插入 100 条测试记录的 SQL 语句:```declare i intset i = 500while (i < 600)begin insert into MYTABLE(invitesetid
Sql 批量替换所有表中内容
Sql 批量替换所有表中内容的原理:1. 声明 cursor 游标:使用 declare 语句声明了一个 cursor 游标,用于遍历所有表和字段。2.


community_281
