22,209
社区成员
发帖
与我相关
我的任务
分享
CREATE procedure [dbo].[p_add_SMenuList]
@Menucode nvarchar(50),
@MenuName nvarchar(50),
@MenuYN bit,
@MenuOrdID int,
@MenuJpgID int,
@MenuUsr nvarchar(50),
@ID nvarchar(50),
@sl nvarchar(50) output
as
declare @count int;
begin tran
select @count=COUNT(1)from SMenuList where Menucode=@Menucode and MenuName=@MenuName
if @count=0
begin
insert into SMenuList(ID,Menucode,MenuName,MenuYN,MenuOrdID,MenuJpgID,MenuUsr,Menutime,MenuID,MenuUsrID,Menugrade)
values(@ID,@Menucode,@MenuName,@MenuYN,@MenuOrdID,@MenuJpgID,@MenuUsr,GETDATE(),'0999','SystemMenu','1');
--例如A表有一个A1字段,内容为:001,002,003
--把上面插入语句判断A表A1字段有多少个内容插入多少次如下;
-- insert into SMenuListUsr(ID,Menucode,MenuName,MenuYN,MenuOrdID,MenuJpgID,MenuUsr,Menutime,MenuID,MenuUsrID,Menugrade)
-- values(@ID,@Menucode,@MenuName,@MenuYN,@MenuOrdID,@MenuJpgID,@MenuUsr,GETDATE(),'0999','001','1');
-- insert into SMenuListUsr(ID,Menucode,MenuName,MenuYN,MenuOrdID,MenuJpgID,MenuUsr,Menutime,MenuID,MenuUsrID,Menugrade)
-- values(@ID,@Menucode,@MenuName,@MenuYN,@MenuOrdID,@MenuJpgID,@MenuUsr,GETDATE(),'0999','002','1');
-- insert into SMenuListUsr(ID,Menucode,MenuName,MenuYN,MenuOrdID,MenuJpgID,MenuUsr,Menutime,MenuID,MenuUsrID,Menugrade)
-- values(@ID,@Menucode,@MenuName,@MenuYN,@MenuOrdID,@MenuJpgID,@MenuUsr,GETDATE(),'0999','003','1');
*/
--
------------------------问题-----------------------------
--1/如果A表内有多个内容,怎么使用循环for插入,对SQL不了解,求助!--
--1/如果是更新或删除做类似操作该怎么来写,谢谢!!--
set @sl='代码:{'+@Menucode+'}、名称:{'+@MenuName+'}保存成功,请查看!';
end
else
begin
set @sl='代码:{'+@Menucode+'}、名称:{'+@MenuName+'}保存失败,数据库已经存在,请核对!';
end
select @sl;
IF @@error <> 0 --发生错误
BEGIN
ROLLBACK TRANSACTION
RETURN 0
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN 1 --执行成功
END
GO
insert into SMenuListUsr(ID,Menucode,MenuName,MenuYN,MenuOrdID,MenuJpgID,MenuUsr,Menutime,MenuID,MenuUsrID,Menugrade)
select @ID,@Menucode,@MenuName,@MenuYN,@MenuOrdID,@MenuJpgID,@MenuUsr,GETDATE(),'0999',A1,'1'
from A
不就可以了
INSERT INTO SMenuListUsr(col1,col2....) SELECT col1,col2,.... A1 FROM A
--前后一一对应就OK了
一定要循环吗?
declare @i int
set @i=1
select @count=count(1) from SMenuList where Menucode=@Menucode and MenuName=@MenuName
while @i<=@count
insert into ..... select ..from 表 where @i=...
set @i=@i+1