select a.*, b.ClassId as 级别 into #a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int
@sSqlString varchar(100) set @i = select max(ClassId) from run..CustmerManagerClass while @i > 0
begin
@sSqlString = select ClassPrescribe from run..CustmerManagerClass where ClassId = @i
insert into #a select *, ClassId = @i from v_custmerManagerSumAsset where @sSqlString
set @i = @i - 1
end
create proc sp_mysp
as
select a.*, b.ClassId as 级别 into #a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int
@sSqlString varchar(100) set @i = select max(ClassId) from run..CustmerManagerClass while @i > 0
begin
@sSqlString = select ClassPrescribe from run..CustmerManagerClass where ClassId = @i
insert into #a select *, ClassId = @i from v_custmerManagerSumAsset where @sSqlString
set @i = @i - 1
end
select * from #a
select a.*, b.ClassId as 级别 into #a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int,
@sSqlString varchar(100) set @i = (select max(ClassId) from run..CustmerManagerClass) while @i > 0
begin
set @sSqlString = (select ClassPrescribe from run..CustmerManagerClass where ClassId = @i)
insert into #a select *, ClassId = @i from v_custmerManagerSumAsset where @sSqlString --此为字串,不能直接作为条件,必须改成一个逻辑值!
set @i = @i - 1
end
create proc sp_mysp
as
select a.*, b.ClassId as 级别 into #a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int,
@sSqlString varchar(100) set @i = (select max(ClassId) from run..CustmerManagerClass) while @i > 0
begin
set @sSqlString = (select ClassPrescribe from run..CustmerManagerClass where ClassId = @i)
insert into #a select *, ClassId = @i from v_custmerManagerSumAsset where @sSqlString
set @i = @i - 1
end select * from #ago为何报错Incorrect syntax near the keyword 'set'.
@sSqlString varchar(100) 改为declare @i int , @sSqlString varchar(100) 或declare @i int
declare @sSqlString varchar(100)
@sSqlString varchar(100) 改为declare @i as int , @sSqlString as varchar(100) 或declare @i as int
declare @sSqlString as varchar(100)
create proc sp_mysp
as
select a.*, b.ClassId as 级别 into a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int, @sSqlString varchar(100) select @i = max(ClassId) from run..CustmerManagerClass
while @i > 0
begin
select @sSqlString = ClassPrescribe from run..CustmerManagerClass where ClassId = @i
exec('insert into a select *, ClassId = @i from v_custmerManagerSumAsset where ' + @sSqlString )
set @i = @i - 1
end select * from ago
按dawugui 老兄的方法可以创建该存储过程,但在执行的时候又出问题了,
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
服务器: 消息 137,级别 15,状态 2,行 1
Must declare the variable '@i'.
as
Declare @i Var
select a.*, b.ClassId as 级别 into a from v_custmerManagerSumAsset a, run..CustmerManagerClass b where 1 <> 1 declare @i int, @sSqlString varchar(100) select @i = max(ClassId) from run..CustmerManagerClass
while @i > 0
begin
select @sSqlString = ClassPrescribe from run..CustmerManagerClass where ClassId = @i
exec('insert into a select *, ClassId = '+ @i +' from v_custmerManagerSumAsset where ' + @sSqlString )
set @i = @i - 1
end select * from ago