我存储的
alter PROCEDURE [dbo].[InsertDynamicFun]
@TblName nvarchar(max),@F1 nvarchar(50),@F2 nvarchar(50),@F3 nvarchar(50),@F4 nvarchar(50)
,@P1 nvarchar(50),@P2 nvarchar(50),@P3 nvarchar(50),@P4 nvarchar(50)
AS
BEGIN
declare @TAblE nvarchar(max);
set @TAblE = 'Insert Into ' + @TblName + '('+@F1+','+@F2+','+@F3+','+@F4+')Values ('+@P1+','+@P2+','+@P3+','+@P4+')'
exec(@TAblE)
END
显示错误
Msg 207, Level 16, State 1, Line 3
Invalid column name 'Value of @P2'.
Msg 207, Level 16, State 1, Line 3
Invalid column name 'Value of @P3'.
Msg 207, Level 16, State 1, Line 3
Invalid column name 'Value of @P4'.
但是@ P1没有表现出她的错 我希望通过将参数传递给存储的PROCEDURE来保存任何表中的数据 并考虑到数字字段
答案 0 :(得分:0)
此错误是因为您的参数之一:
@ F1,@ F2,@ F3,@ F4可能包含以下值:
'Value of @P2'
或'Value of @P3'
或Value of @P3
或Value of @P4
这不是@TblName
的列名。
请使用以下方法检查上述参数的值:
print @F1
print @F2
print @F3
print @F4
这会让你知道确切的问题。