if exists(select 1 from sysobjects where [id]= object_id(N'[dbo].[pro_Student_insert]')
and [xtype] in(N'P'))
drop procedure [dbo].[pro_Student_insert]
go
create procedure [dbo].[pro_Student_insert]
(@no varchar(9),
@name varchar(8),
@sex bit = 1,
@birthday smalldatetime = '1988-8-8',
@resault varchar(50) output
)
as
declare @sql varchar(200)
if exists(select 1 from Student where Sno =@no)
begin
set @resault = N'学号重复,请勿反复输入。'
return
end
set @sql = 'insert Student values('''+@no+''','''+@name+''','+str(@sex)+','''+@birthday+''')'
exec(@sql)
if (@@error<>0)
begin
set @resault = N'输入成功'
return
end
if (@@error<>0)
begin
set @resault = N'失败,请检查数据再试、或者联系管理员。'
return
end
go
--测试存储过程
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808810' ,'a',1,'1988-8-8',@aaa output
print @aaa
go
这里'1988-8-8',日期应该怎样填?
and [xtype] in(N'P'))
drop procedure [dbo].[pro_Student_insert]
go
create procedure [dbo].[pro_Student_insert]
(@no varchar(9),
@name varchar(8),
@sex bit = 1,
@birthday smalldatetime = '1988-8-8',
@resault varchar(50) output
)
as
declare @sql varchar(200)
if exists(select 1 from Student where Sno =@no)
begin
set @resault = N'学号重复,请勿反复输入。'
return
end
set @sql = 'insert Student values('''+@no+''','''+@name+''','+str(@sex)+','''+@birthday+''')'
exec(@sql)
if (@@error<>0)
begin
set @resault = N'输入成功'
return
end
if (@@error<>0)
begin
set @resault = N'失败,请检查数据再试、或者联系管理员。'
return
end
go
--测试存储过程
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808810' ,'a',1,'1988-8-8',@aaa output
print @aaa
go
这里'1988-8-8',日期应该怎样填?
and [xtype] in(N'P'))
drop procedure [dbo].[pro_Student_insert]
go
create procedure [dbo].[pro_Student_insert]
(@no varchar(9),
@name varchar(8),
@sex bit = 1,
@birthday smalldatetime = '1988-8-8',
@resault varchar(50) output
)
as
declare @sql varchar(200)
if exists(select 1 from Student where Sno =@no)
begin
set @resault = N'学号重复,请勿反复输入。'
return
end
set @sql = 'insert Student values('''+@no+''','''+@name+''','+str(@sex)+','''+convert(char(10),@birthday,120)+''')'
exec(@sql)
if (@@error <>0)
begin
set @resault = N'输入成功'
return
end
if (@@error <>0)
begin
set @resault = N'失败,请检查数据再试、或者联系管理员。'
return
end
go
--测试存储过程
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808810' ,'a',1,'1988-8-8',@aaa output
print @aaa
go
exec pro_Student_insert 'AP0808810' ,'a',1,'1988-8-8',@aaa output
print @aaa
go
这里'1988-8-8',日期,或者讲时间,应该怎样填?报错,输入的不是时间,而是字符串
and [xtype] in(N'P'))
drop procedure [dbo].[pro_Student_insert]
go
create procedure [dbo].[pro_Student_insert]
(@no varchar(9),
@name varchar(8),
@sex bit = 1,
@birthday smalldatetime = '1988-8-8',
@resault varchar(50) output
)
as
declare @sql varchar(200)
if exists(select 1 from Student where Sno =@no)
begin
set @resault = N'学号重复,请勿反复输入。'
return
end
set @sql = 'insert Student values('''+@no+''','''+@name+''','+str(@sex)+','''+@birthday+''')'
exec(@sql)
if (@@error <>0)
begin
set @resault = N'输入成功'
return
end
if (@@error <>0)
begin
set @resault = N'失败,请检查数据再试、或者联系管理员。'
return
end
go
--测试存储过程
declare @aaa varchar(50)
exec pro_Student_insert 'AP0808810' ,'a',1,'1988-8-8',@aaa output
print @aaa
go
@birthday smalldatetime = '08 08 1988' --月-日-年--
exec pro_Student_insert 'AP0808810' ,'a',1,'08 08 2008',@aaa output 你试试看
你当成字符串不是一样可以的吗
用varchar就可以了
这样你上面就不会报错了吧