其中@入厂日期为datetime型
DECLARE @STR nvarchar(1000)
SET @STR='INSERT INTO BasicInfo
(当前辊径,入厂日期,轧辊编号,出厂编号,合格证编号,材质,重量,适用品种,适用区域,是否精开,生产厂家,硬度,总轧制量,备注,是否报废,类别,是否可用,辊径'+@STR1+')
VALUES
('+cast(@当前辊径 as nvarchar)+',cast('+cast(@入厂日期 as nvarchar)+' as datetime),'+@轧辊编号+','+@出厂编号+','+@合格证编号+','+@材质+','+cast(@重量 as nvarchar)+','+@适用品种+','+@适用区域+','+@是否精开+','+@生产厂家+','+cast(@硬度 as nvarchar)+','+cast(@总轧制量 as nvarchar)+','+@备注+','+@是否报废+','+@类别+','+@是否可用+','+cast(@辊径 as nvarchar)+@STR2+');'
EXEC(@STR)我是这样写存储过程的,好像有点问题,不知道各位能不能帮忙。
DECLARE @STR nvarchar(1000)
SET @STR='INSERT INTO BasicInfo
(当前辊径,入厂日期,轧辊编号,出厂编号,合格证编号,材质,重量,适用品种,适用区域,是否精开,生产厂家,硬度,总轧制量,备注,是否报废,类别,是否可用,辊径'+@STR1+')
VALUES
('+cast(@当前辊径 as nvarchar)+',cast('+cast(@入厂日期 as nvarchar)+' as datetime),'+@轧辊编号+','+@出厂编号+','+@合格证编号+','+@材质+','+cast(@重量 as nvarchar)+','+@适用品种+','+@适用区域+','+@是否精开+','+@生产厂家+','+cast(@硬度 as nvarchar)+','+cast(@总轧制量 as nvarchar)+','+@备注+','+@是否报废+','+@类别+','+@是否可用+','+cast(@辊径 as nvarchar)+@STR2+');'
EXEC(@STR)我是这样写存储过程的,好像有点问题,不知道各位能不能帮忙。
try:
DECLARE @STR nvarchar(1000)
SET @STR='
INSERT INTO BasicInfo(
当前辊径,入厂日期,轧辊编号,出厂编号,合格证编号,材质,重量,适用品种,
适用区域,是否精开,生产厂家,硬度,总轧制量,备注,是否报废,类别,是否可用,辊径'+@STR1+')
VALUES('
+cast(@当前辊径 as nvarchar)+','+convert(varchar,@入厂日期,23)+','+@轧辊编号+','+@出厂编号
+','+@合格证编号+','+@材质+','+cast(@重量 as nvarchar)+','+@适用品种+','+@适用区域+','+@是否精开
+','+@生产厂家+','+cast(@硬度 as nvarchar)+','+cast(@总轧制量 as nvarchar)+','+@备注+','+@是否报废
+','+@类别+','+@是否可用+','+cast(@辊径 as nvarchar)+@STR2+');'
EXEC(@STR)
按你提供的方法改了改,日期可以穿进去,但日期值不对,我用的datetime.now
传入的数据却是1905-6-5 0:00:00
SET @STR='
INSERT INTO BasicInfo(
当前辊径,入厂日期,轧辊编号,出厂编号,合格证编号,材质,重量,适用品种,
适用区域,是否精开,生产厂家,硬度,总轧制量,备注,是否报废,类别,是否可用,辊径'+@STR1+')
VALUES('
+cast(@当前辊径 as nvarchar)+','+convert(varchar,@入厂日期,23)+','+@轧辊编号+','+@出厂编号
+','+@合格证编号+','''+@材质+''','+cast(@重量 as nvarchar)+','''+@适用品种+''','''+@适用区域+''','''+@是否精开
+''','''+@生产厂家+''','''+cast(@硬度 as nvarchar)+''','+cast(@总轧制量 as nvarchar)+','''+@备注+''','''+@是否报废
+''','+@类别+','+@是否可用+','+cast(@辊径 as nvarchar)+@STR2+');'
EXEC(@STR) 应该把字符串类型的变量再加引号。(请楼主检查哪些属于字符型的)
cast('+cast(@入厂日期 as nvarchar)+' as datetime
插入值时,应该也要用引号引起来
@出厂编号 nvarchar(50)='',
@合格证编号 nvarchar(50)='',
@材质 nvarchar(20)='',
@重量 float=null,
@适用品种 nvarchar(20)='',
@适用区域 nvarchar(20)='',
@是否精开 nvarchar(8)='',
@生产厂家 nvarchar(20)='',
@硬度 float='',
@总轧制量 float='',
@备注 nvarchar(200)='',
@是否报废 nvarchar(8)='',
@类别 nvarchar(20)='',
@芯轴编号 nvarchar(50)='',
@轴环编号 nvarchar(50)='',
@过盈量 float='',
@是否可用 nvarchar(8)='',
@辊径 float='',
@入厂日期 datetime='',
@当前辊径 float=''
我设定的是这样的,别的都测试过没有问题,就是日期输入有问题。
SET @STR='
INSERT INTO BasicInfo(
当前辊径,入厂日期,轧辊编号,出厂编号,合格证编号,材质,重量,适用品种,
适用区域,是否精开,生产厂家,硬度,总轧制量,备注,是否报废,类别,是否可用,辊径'+@STR1+')
VALUES('
+cast(@当前辊径 as nvarchar)+','+convert(varchar(20),@入厂日期,23)+','+@轧辊编号+','+@出厂编号
+','+@合格证编号+','+@材质+','+cast(@重量 as nvarchar)+','+@适用品种+','+@适用区域+','+@是否精开
+','+@生产厂家+','+cast(@硬度 as nvarchar)+','+cast(@总轧制量 as nvarchar)+','+@备注+','+@是否报废
+','+@类别+','+@是否可用+','+cast(@辊径 as nvarchar)+@STR2+');'
EXEC(@STR)将TONY哥改下看行不???
你是DATETIME.NOW()所以长度应该要长点,不要23试试???
吧varchar后面加个限定也没什么变化啊,还是存入了1905-6-5 0:00:00