存储过程插入数据时,对象类型不兼容?
来源:百度知道 编辑:UC知道 时间:2024/06/07 03:35:06
这个是简单的存储
ALTER PROCEDURE A
AS
declare
@OldShijian datetime,
@NewShijian datetime,
@shuzi int
set @OldShijian='SELECT DATEADD(mm,DATEDIFF(mm,0,getdate())-1,27)'
set @NewShijian=getdate()
select @shuzi=count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian
insert into A(人数) values(@shuzi)
go
下面是报错误
服务器: 消息 2010,级别 16,状态 1,过程 A,行 14
无法在 A 上执行更改操作,因为其对象类型不兼容。
ALTER PROCEDURE A
AS
declare
@OldShijian1 char,
@OldShijian datetime,
@NewShijian datetime,
@shuzi int
set @OldShijian1='SELECT DATEADD(mm,DATEDIFF(mm,0,getdate())-1,27)'
set @OldShijian=CONVERT (datetime,@OldShijian1, 21)
set @NewShijian=getdate()
select @shuzi=count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian
insert into A(人数) values(@shuzi)
go 这样还是不行
ALTER PROCEDURE A
AS
declare
@OldShijian datetime,
@NewShijian datetime,
@shuzi int
set @OldShijian='SELECT DATEADD(mm,DATEDIFF(mm,0,getdate())-1,27)'
set @NewShijian=getdate()
select @shuzi=count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian
insert into A(人数) values(@shuzi)
go
下面是报错误
服务器: 消息 2010,级别 16,状态 1,过程 A,行 14
无法在 A 上执行更改操作,因为其对象类型不兼容。
ALTER PROCEDURE A
AS
declare
@OldShijian1 char,
@OldShijian datetime,
@NewShijian datetime,
@shuzi int
set @OldShijian1='SELECT DATEADD(mm,DATEDIFF(mm,0,getdate())-1,27)'
set @OldShijian=CONVERT (datetime,@OldShijian1, 21)
set @NewShijian=getdate()
select @shuzi=count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian
insert into A(人数) values(@shuzi)
go 这样还是不行
存储过程创建是create吧
..............................................................................................................................
@OldShijian datetime貌似是时间类型 你下面是却是字符串,还是SQL语句的字符串。。。。。
如果你确定"人数"是int型,那么错误就不出在Insert上
select @shuzi=count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian
就你这句就不能过
应该是这样吧:
set @shuizi = (select count(*) from AZ_Info where DateFrom between @OldShijian and @NewShijian )
先把这个改了,如果还不行就在查询分析器里一行一行删,看哪里运行不过。