create proc P_indefrom
{
@from1 varchar(20),
@from2 varchar(20),
@num int
}
as
declare @id int
INSERT into @from2 SELECT
top @num UserName,Sex,moble,phone,city,cardtype,address,funds,
funds2,credential,credit,notes,comefrom,creat_Time,Status FROM @from1 --指定列,如果结构不同的话,没有表的话可以插入INTO
DECLARE FMyCursor CURSOR FOR SELECT id FROM @from1
OPEN FMyCursor
FETCH NEXT FROM FMyCursor INTO @id
WHILE @@FETCH_STATUS = 0
begin
delete from @from1 where id=@id
FETCH NEXT FROM FMyCursor INTO @id
end
CLOSE FMyCursor
DEALLOCATE FMyCursor
go老是暴
消息 102,级别 15,状态 1,过程 P_indefrom,第 2 行
'{' 附近有语法错误。
消息 1087,级别 15,状态 2,过程 P_indefrom,第 9 行
必须声明表变量 "@from2"。
消息 1087,级别 15,状态 2,过程 P_indefrom,第 12 行
必须声明表变量 "@from1"。
消息 1087,级别 15,状态 2,过程 P_indefrom,第 17 行
必须声明表变量 "@from1"。
不知道咋解决了,求助……
(
@from1 varchar(20),
@from2 varchar(20),
@num int
)
as
(
@from1 varchar(20),
@from2 varchar(20),
@num int
)是括号不是中括号
(
@from1 varchar(20),
@from2 varchar(20),
@num int
)
as
declare @id INT
DECLARE @sql varchar(100)
exec('INSERT into '+@from2+' SELECT
top @num UserName,Sex,moble,phone,city,cardtype,address,funds,
funds2,credential,credit,notes,comefrom,creat_Time,Status FROM '+@from1) --指定列,如果结构不同的话,没有表的话可以插入INTO
exec('DECLARE FMyCursor CURSOR FOR SELECT id FROM '+@from1)
OPEN FMyCursor
FETCH NEXT FROM FMyCursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql='delete from '+@from1+' where id='+ltrim(@id)
exec(@sql)
FETCH NEXT FROM FMyCursor INTO @id
end
CLOSE FMyCursor
DEALLOCATE FMyCursor
go
INSERT into @from2 SELECT 拼接吧,这地方也有问题...
funds2,credential,credit,notes,comefrom,creat_Time,Status FROM '+@from1
exec(@sql)