none
类似这样的存储过程一般怎么写? RRS feed

  • 问题

  • 如果用注释里面的语句,商品添加时间就改不了,或者 前台.net页面 产生 转换 datetime 失败等等
    类似这样的存储过程一般怎么写?

    SQL code
    set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER PROCEDURE [dbo].[修改商品存储过程] -- Add the parameters for the stored procedure here @商品编号 int, @商品名称 nvarchar(255), @商品小图地址 nvarchar(255), @商品大图地址 nvarchar(255), @商品中图地址 nvarchar(255), @商品规格 nvarchar(255), @商品面料 nvarchar(255), @商品A价 money, @商品B价 money, @商品类别编号 int, @是否精品 bit, @商品详细说明 varchar(8000), @是否特价商品 bit, @商品库存 int, @商品添加时间 datetime, @商品添加IP nvarchar(255) as BEGin /* declare @sql varchar(8000) set @sql= 'UPdate 商品 set 商品名称='''+@商品名称+''',商品规格='''+@商品规格+''',商品面料='''+@商品面料+''',商品A价='+LTRIM(@商品A价)+',商品B价='+LTRIM(@商品B价)+',商品类别编号='+LTRIM(@商品类别编号)+',是否精品='+LTRIM(@是否精品)+',商品详细说明='''+@商品详细说明+''',是否特价商品='+LTRIM(@是否特价商品)+',商品库存='+LTRIM(@商品库存) if(@商品小图地址 <>'') set @sql=@sql+', 商品小图地址='''+ @商品小图地址+'''' if(@商品大图地址 <>'') set @sql=@sql+', 商品大图地址='''+ @商品大图地址+'''' if(@商品中图地址 <>'') set @sql=@sql+', 商品中图地址='''+ @商品中图地址+'''' if(@商品添加时间 <>'') set @sql=@sql+', 商品添加时间='+ LTRIM(@商品添加时间) if(@商品添加IP <>'') set @sql=@sql+', 商品添加IP='''+ @商品添加IP+'''' set @sql=@sql+' where 商品编号='+LTRIM(@商品编号) exec(@sql) */ Update 商品 set 商品名称=@商品名称,商品规格=@商品规格,商品面料=@商品面料,商品A价=@商品A价,商品B价=@商品B价,商品类别编号=@商品类别编号,是否精品=@是否精品,商品详细说明=@商品详细说明,是否特价商品=@是否特价商品,商品库存=@商品库存,商品添加时间=@商品添加时间 where 商品编号=@商品编号 if(@商品小图地址 <>'') Update 商品 set 商品小图地址=@商品小图地址 where 商品编号=@商品编号 if(@商品中图地址 <>'') Update 商品 set 商品中图地址=@商品中图地址 where 商品编号=@商品编号 if(@商品大图地址 <>'') Update 商品 set 商品大图地址=@商品大图地址 where 商品编号=@商品编号 if(@商品添加IP <>'') Update 商品 set 商品添加IP=@商品添加IP where 商品编号=@商品编号 end
    2010年2月25日 12:38

答案

  • 关键是你这个字段是什么类型?datetime还是字符型?
    if(@商品添加时间 <>'') set @sql=@sql+', 商品添加时间='+ cast(@商品添加时间 as nvarchar(20))
    
    CONVERT(nvarchar(30), GETDATE(), 121)

    助人等于自助。3w@live.cn
    2010年2月27日 10:32