存储过程 错在哪?
USE [chaowind]
GO
/****** Object: StoredProcedure [dbo].[addnew1] Script Date: 12/05/2012 17:22:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addnew1]
@station varchar(5),
@datetime varchar(16),
@u1 varchar(10),
@v1 varchar(10),
@w1 varchar(10),
@num int output
AS
begin
declare @sql varchar(400)
declare @sql1 varchar(200)
declare @sql2 varchar(200)
If exists(select 1 from [dbo].[wind] where [station] = @station and [datetime]=@datetime )
return 1
set @sql = ' insert into [dbo].[wind] ([id],[station],[datetime]'
set @sql1 = ''
set @sql2 = ''
If not @u1 Is Null
set @sql1 = @sql1 + ',[u1]'
set @sql2 = @sql2 + ',' + @u1
If not @v1 Is Null
set @sql1 = @sql1 + ',[v1]'
set @sql2 = @sql2 + ',' + @v1
If not @w1 Is Null
set @sql1 = @sql1 + ',[w1]'
set @sql2 = @sql2 + ',' + @w1
if @sql1 =''
return 2
set @sql = @sql + @sql1 + ') values (' + @station + @datetime + ',' + @station + ',' + @datetime + @sql1 + ')'
EXEC (@sql)
return 3
end
执行如下:
USE [chaowind]
declare @num int
exec [dbo].[addnew1] '51053','20101212121201','12','1',1,@num output
SELECT @num
错误:
消息 207,级别 16,状态 1,第 1 行
列名 'u1' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'v1' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'w1' 无效。
(1 行受影响)
------解决方案--------------------先不exec,先print出来看看是什么情况再调试,下班了,回去看