CREATE PROCDURE ProcSpInsertCREATE PROCDURE PROC_DBINIT_INSERT
DECLARE @SPID VARCHAR(50)
DECLARE @USERID VARCHAR(50)
DECLARE @USERNAME VARCHAR(50)
DECLARE @USERPWD VARCHAR(50)
DECLARE @REGCODE VARCHAR(50)
DECLARE @ROLE VARCHAR(50)
DECLARE @USERSTATUS INT
DECLARE @LANAREA VARCHAR(256)
DECLARE @CREATETIMER VARCHAR(50)
DECLARE @l_UUID5 UNIQUEIDENTIFIER
AS
BEGIN
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'我用ADO执行把这段字符串, catch捕获异常都是报“PROCDURE附近有语法错误”, 我存储过程
相当的烂,各位大虾帮我看看啊
DECLARE @SPID VARCHAR(50)
DECLARE @USERID VARCHAR(50)
DECLARE @USERNAME VARCHAR(50)
DECLARE @USERPWD VARCHAR(50)
DECLARE @REGCODE VARCHAR(50)
DECLARE @ROLE VARCHAR(50)
DECLARE @USERSTATUS INT
DECLARE @LANAREA VARCHAR(256)
DECLARE @CREATETIMER VARCHAR(50)
DECLARE @l_UUID5 UNIQUEIDENTIFIER
AS
BEGIN
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'我用ADO执行把这段字符串, catch捕获异常都是报“PROCDURE附近有语法错误”, 我存储过程
相当的烂,各位大虾帮我看看啊
CREATE PROCEDURE PROC_DBINIT_INSERT
DECLARE @SPID VARCHAR(50)
DECLARE @USERID VARCHAR(50)
DECLARE @USERNAME VARCHAR(50)
DECLARE @USERPWD VARCHAR(50)
DECLARE @REGCODE VARCHAR(50)
DECLARE @ROLE VARCHAR(50)
DECLARE @USERSTATUS INT
DECLARE @LANAREA VARCHAR(256)
DECLARE @CREATETIMER VARCHAR(50)
DECLARE @l_UUID5 UNIQUEIDENTIFIER
AS
BEGIN
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'
@SPID VARCHAR(50)
,@USERID VARCHAR(50)
,@USERNAME VARCHAR(50)
,@LANAREA VARCHAR(256)
,@CREATETIMER VARCHAR(50)
AS
BEGIN
DECLARE @l_UUID5 UNIQUEIDENTIFIER
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'
DECLARE @SPID VARCHAR(50)
DECLARE @USERID VARCHAR(50)
DECLARE @USERNAME VARCHAR(50)
DECLARE @USERPWD VARCHAR(50)
DECLARE @REGCODE VARCHAR(50)
DECLARE @ROLE VARCHAR(50)
DECLARE @USERSTATUS INT
DECLARE @LANAREA VARCHAR(256)
DECLARE @CREATETIMER VARCHAR(50)
DECLARE @l_UUID5 UNIQUEIDENTIFIER
BEGIN
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'
这次没写错吧~
8楼:CREATE PROCDURE PROC_DBINIT_INSERT
@USERID VARCHAR(50)
,@SPID VARCHAR(50)
,@USERNAME VARCHAR(50)
,@LANAREA VARCHAR(256)
,@CREATETIMER VARCHAR(50)
AS
BEGIN
DECLARE @l_UUID5 UNIQUEIDENTIFIER
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'
CREATE PROCDURE PROC_DBINIT_INSERT
@USERID VARCHAR(50)
,@SPID VARCHAR(50)
,@USERNAME VARCHAR(50)
,@LANAREA VARCHAR(256)
,@CREATETIMER VARCHAR(50)
AS
BEGIN
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES (NEWID(), @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , getdate() )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'
这样就好了,参数对应
@SPID VARCHAR(50),\n \
@USERID VARCHAR(50),\n \
@USERNAME VARCHAR(50),\n \
@USERPWD VARCHAR(50),\n \
@REGCODE VARCHAR(50),\n \
@ROLE VARCHAR(50),\n \
@USERSTATUS INT,\n \
@LANAREA VARCHAR(256),\n \
@CREATETIMER VARCHAR(50)\n \
AS\n \
BEGIN\n \
DECLARE @l_UUID5 UNIQUEIDENTIFIER\n \
SELECT @CREATETIMER = getdate()\n \
SELECT @l_UUID5 = NEWID()\n \
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )\n \
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )\n \
END\n \
EXEC PROC_DBINIT_INSERT '%s','%s','%s','%s','%s'\n\n",
strUserid,
strSpid,
strUserName,
strRegCode,
strLanArea);
pConnection->Execute(_bstr_t(sSql),&vReturn,adExecuteNoRecords);
代码调试运行通过了, 但为什么数据没有插进去? 这个语句这样插入有问题吗?
CREATE PROCEDURE 更新资料
AS
begin--该程序为定期运行,周期约为每天三次,移动考勤门禁记录和就餐记录--第一阶段,考勤资料的处理--第一步:设定条件,显示工作月declare
@startday varchar(10),
@endday varchar(10),
@today datetime,
@today2 datetime
set @today = getdate()
--后加入
set @today2 = convert(varchar(10),@today,111)if day(@today) <= 15set @startday = convert(varchar(8),dateadd(month,-2,@today),111) + '25'elseset @startday = convert(varchar(8),dateadd(month,-1,@today),111) + '25'set @endday = convert(varchar(10),@today,111)--第二步:将rsa241表中未导入的数据导入T_HR191表中,并注意消除空格,且注意过滤异常数据insert into T_HR191
(sdate,
stime,
event_code,
event_card,
ncuip,
device_id,
event_des,
door_name,
site_id,
ip,
device_name,
emp_id,
emp_name,
emp_dep)
select
rtrim(abc.sdate),
rtrim(abc.stime),
rtrim(abc.event_code),
rtrim(abc.event_card),
rtrim(abc.ncuip),
rtrim(abc.device_id),
rtrim(abc.event_des),
rtrim(abc.door_name),
rtrim(abc.site_id),
rtrim(abc.ip),
rtrim(abc.device_name),
rtrim(abc.emp_id),
rtrim(abc.emp_name),
rtrim(abc.emp_dep)
from rs2000.dbo.rsa241 abc
left join T_HR191 abd
on abc.sdate = abd.sdate
and abc.stime = abd.stime
and abc.event_code = abd.event_code
and abc.event_card = abd.event_card
and abc.ncuip = abd.ncuip
and abc.device_id = abd.device_id
where isdate(abc.sdate) = 1
and isdate(abc.stime) = 1
and abd.sdate is null
and abd.stime is null
and abd.event_code is null
and abd.event_card is null
and abd.ncuip is null
and abd.device_id is null
and abc.sdate <= @endday
and abc.sdate >= @startday
and abc.event_code not like '030[2,3]'
order by abc.sdate asc, abc.stime asc--第三步:删除表rsa241中日期错误的数据delete rs2000.dbo.rsa241
where isdate(sdate) = 0
or isdate(stime) = 0--第四步:删除表rsa241表中已经导入T_HR191表中数据delete rs2000.dbo.rsa241
from T_HR191 abd
where rs2000.dbo.rsa241.sdate = abd.sdate
and rs2000.dbo.rsa241.stime = abd.stime
and rs2000.dbo.rsa241.event_code = abd.event_code
and rs2000.dbo.rsa241.event_card = abd.event_card
and rs2000.dbo.rsa241.ncuip = abd.ncuip
and rs2000.dbo.rsa241.device_id = abd.device_id--第五步:只讲考勤部分的记录导入到T_HR108表中insert into T_HR108
(
HR108_01,
HR108_02,
HR108_03,
HR108_04,
HR108_05,
HR108_06,
HR108_07,
HR108_08,
HR108_09,
HR108_10,
HR108_11,
HR108_12,
HR108_13)
select
rtrim(abc.sdate),
rtrim(abc.stime),
rtrim(abc.event_code),
rtrim(abc.event_card),
rtrim(abc.ncuip),
rtrim(abc.device_id),
cast((abc.sdate + ' ' + abc.stime) as datetime) HR108_07,
rtrim(abf.HR002_05),
rtrim(abd.HR101_03),
rtrim(abd.HR101_04),
rtrim(abe.HR104_03),
rtrim(abe.HR104_04),
rtrim(abd.HR101_08)
from T_HR191 abc
left join T_HR101 abd
on abc.event_card = abd.HR101_01
left join T_HR104 abe
on abc.ncuip = abe.HR104_01
and abc.device_id = abe.HR104_02
left join T_HR002 abf
on abc.sdate = abf.HR002_01
left join T_HR108 abg
on abc.sdate = abg.HR108_01
and abc.stime = abg.HR108_02
and abc.event_code = abg.HR108_03
and abc.event_card = abg.HR108_04
and abc.ncuip = abg.HR108_05
and abc.device_id = abg.HR108_06
where
(
abe.HR104_04 = '上班'
or abe.HR104_04 = '下班'
or abe.HR104_04 = '办公'
)
and len(abc.event_card) = 10
and isnumeric(abc.event_card) = 1
and abg.HR108_01 is null
and abg.HR108_02 is null
and abg.HR108_03 is null
and abg.HR108_04 is null
and abg.HR108_05 is null
and abg.HR108_06 is null--第六步:将25日下午上班的数据月份归属归并到下一个月update T_HR108
set HR108_08 = convert(varchar(6),dateadd(month,1,HR108_07),112)
where right(HR108_01,2) = '25'
and HR108_02 > '15:30:00'
and HR108_12 = '上班'
and HR108_08 != convert(varchar(6),dateadd(month,1,HR108_07),112)--第七步:将S_SK表中未导入的数据导入T_HR192表中,并注意消除空格,还有时间段,并利用后两个未使用的字段表示日期和餐种insert into T_HR192
(
SK01,
SK02,
SK03,
SK04,
SK05,
SK06,
SK07,
SK08,
SK09,
SK10,
SK11,
SK12
)
select
rtrim(abc.SK01),
rtrim(abc.SK02),
rtrim(abc.SK03),
abc.SK04,
abc.SK05,
abc.SK06,
abc.SK07,
rtrim(abc.SK08),
abc.SK09,
convert(varchar(10),dateadd(minute,-390,abc.SK07),111),
rtrim(abc.SK11),
case
when convert(varchar(10),abc.SK07,114) >= '06:30:00' and convert(varchar(10),abc.SK07,114) < '15:30:00' then '1中餐'
when convert(varchar(10),abc.SK07,114) >= '15:30:00' and convert(varchar(10),abc.SK07,114) < '22:00:00' then '2晚餐'
else '3夜餐'
end
from openrowset('SQLOLEDB','10.0.0.18';'sa';'299792458',ID_Eatery.dbo.S_SK) abc
left join
T_HR192 abd
on abc.SK03 = abd.SK03
and abc.SK07 = abd.SK07
and abc.SK08 = abd.SK08
where
abd.SK03 is null
and abd.SK07 is null
and abd.SK08 is null
and abc.SK07 > cast((@startday + ' 15:30:00') as datetime)
and abc.SK07 <= @today
order by
abc.SK07 asc,
abc.SK08 asc,
abc.SK03 asc
--备份原始数据
insert into S_SK_bak
(SK01,
SK02,
SK03,
SK04,
SK05,
SK06,
SK07,
SK08,
SK09,
SK10,
SK11,
SK12)
select
SK01,
SK02,
SK03,
SK04,
SK05,
SK06,
SK07,
SK08,
SK09,
SK10,
SK11,
SK12
from openrowset('SQLOLEDB','10.0.0.18';'sa';'299792458',ID_Eatery.dbo.S_SK)
where SK07 > cast((@startday + ' 15:30:00') as datetime)
and SK07 <= @today2
--删除2个月前备份的数据
delete S_SK_bak
where SK07 <= convert(varchar(8),dateadd(month,-2,@today),111) + '25'
--第八步:删除S_SK中已经导入的记录(如果停电此命令会删除未导入的记录,因此加上以上备份的步骤)delete openrowset('SQLOLEDB','10.0.0.18';'sa';'299792458',ID_Eatery.dbo.S_SK)
where SK07 > cast((@startday + ' 15:30:00') as datetime)
and SK07 < @today2
--===================================上面@today2已修改,原来是@today--第九步:将离职人员的卡资料更新update T_HR101
set HR101_05 = '离职卡'
from (select HR101_01
from T_HR101 abc
left join ldmis2000.dbo.A01 abd
on abc.HR101_03 = abd.A0190
where abc.HR101_05 = '在岗卡'
and abd.A0191 != '在岗人员') abc
where T_HR101.HR101_01 = abc.HR101_01--第十步:更新人员表中某些资料(掉卡的人的原资料未挂失)
while EXISTS
(select 1
from V_HR101
group by HR101_03
having count(*) > 1)beginupdate T_HR101
set HR101_05 = '挂失卡'
from
(select HR101_03,min(HR101_02) smcard,count(*) num
from V_HR101
group by HR101_03
having count(*) > 1) abc
where T_HR101.HR101_02 = abc.smcardend--第十一步:根据更新资料更新门禁系统的名单--清空名单
delete rs2000.dbo.rsa102--更新名单
insert into rs2000.dbo.rsa102
(group_id,
rsa102_01,
rsa102_02,
rsa102_03,
rsa102_05,
rsa102_06,
rsa102_08,
rsa102_22,
rsa102_29)
select 'P09304140001',
rtrim(HR101_03),
rtrim(HR101_04),
rtrim(HR101_01),
'20040207',
'20091230',
'1',
rtrim(HR101_04),
'1'
FROM dbo.T_HR101 abc LEFT OUTER JOIN
dbo.T_HR102 abd ON abc.HR101_05 = abd.HR102_02 LEFT OUTER JOIN
dbo.T_HR103 abe ON abc.HR101_08 = abe.HR103_02
WHERE (abd.HR102_03 = 1) AND (abe.HR103_03 = 1)--第十二步:根据更新资料更新门禁系统的门禁权限delete T_HR106delete T_HR107insert into T_HR107
(HR107_01,HR107_02)
select rsa228_01,
rsa228_02
from rs2000.dbo.rsa228
where rsa228_01 != 1
and rsa228_01 != 6
and rsa228_01 != 7
and rsa228_01 != 13update T_HR107
set HR107_02 = T_HR101.HR101_03
from T_HR101
where T_HR107.HR107_02 = T_HR101.HR101_02insert into T_HR106
(HR106_01,HR106_02)
select HR107_01,HR107_02
from T_HR107
group by HR107_01,HR107_02delete rs2000.dbo.rsa228insert into rs2000.dbo.rsa228 (
site_id,
rsa228_01,
rsa228_02,
flag_ty,
upd_time,
upd_nam,
rsa228_03)
select
'P09304140001',
HR106_01,
rtrim(HR106_02),
'1',
'20040815120000',
'ADMIN',
''
from T_HR106insert into rs2000.dbo.rsa228 (
site_id,
rsa228_01,
rsa228_02,
flag_ty,
upd_time,
upd_nam,
rsa228_03)
select
'P09304140001',
1,
rtrim(rsa102_01),
'1',
'20040815120000',
'ADMIN',
''
from rs2000.dbo.rsa102insert into rs2000.dbo.rsa228 (
site_id,
rsa228_01,
rsa228_02,
flag_ty,
upd_time,
upd_nam,
rsa228_03)
select
'P09304140001',
6,
rtrim(rsa102_01),
'1',
'20040815120000',
'ADMIN',
''
from rs2000.dbo.rsa102insert into rs2000.dbo.rsa228 (
site_id,
rsa228_01,
rsa228_02,
flag_ty,
upd_time,
upd_nam,
rsa228_03)
select
'P09304140001',
7,
rtrim(rsa102_01),
'1',
'20040815120000',
'ADMIN',
''
from rs2000.dbo.rsa102insert into rs2000.dbo.rsa228 (
site_id,
rsa228_01,
rsa228_02,
flag_ty,
upd_time,
upd_nam,
rsa228_03)
select
'P09304140001',
13,
rtrim(rsa102_01),
'1',
'20040815120000',
'ADMIN',
''
from rs2000.dbo.rsa102end
GO
@SPID VARCHAR(50),
@USERID VARCHAR(50),
@USERNAME VARCHAR(50),
@USERPWD VARCHAR(50),
@REGCODE VARCHAR(50),
@ROLE VARCHAR(50),
@USERSTATUS INT,
@LANAREA VARCHAR(256),
@CREATETIMER VARCHAR(50),
@l_UUID5 UNIQUEIDENTIFIER
AS
BEGIN
SELECT @CREATETIMER = getdate()
SELECT @l_UUID5 = NEWID()
INSERT [TUserInfo] ( [Id] , [UserId] , [SpId] , [UserName] , [UserPassword] , [RegCode] , [Role] , [UserStatus] , [LanArea] , [CreateDate] )
VALUES ( @l_UUID5 , @USERID , @SPID , @USERNAME, '' , @REGCODE , '0' , 1 , @LANAREA , @CREATETIMER )
END
EXEC PROC_DBINIT_INSERT'admin','60000004','admin','123444','10000001'