我有这个SQL存储过程(我虽然修改了它)
ALTER Procedure [dbo].[spUpdateProfile]
(
@TableName nvarchar(30),
@First_Name nvarchar(max),
@Middle_Name nvarchar(max),
@Last_Name nvarchar(max),
@Birthday date,
@Address nvarchar(max),
@Websites nvarchar(max),
@Email nvarchar(max),
@Contact_Number nvarchar(max),
@Gender nvarchar(max))
AS
DECLARE @SQLString NVARCHAR(MAX)
SET @SQLString = 'TRUNCATE TABLE ' + @TableName
EXEC (@SQLString)
DECLARE @SQLString1 NVARCHAR(MAX)
SET @SQLString1= 'INSERT INTO [dbo].[' + @TableName +
'](First_Name,
Middle_Name,
Last_Name,
Birthday,
Address,
Websites,
Email,
Contact_Number,
Gender) VALUES(' + @First_Name + ','
+@Middle_Name + ','
+@Last_Name + ','
+convert(nvarchar(max),@Birthday) + ','
+@Address + ','
+@Websites + ','
+@Email + ','
+@Contact_Number +','
+@Gender +')'
print @SQLString1
EXEC (@SQLString1)
然后当我尝试设置值...
USE [PersonalOrganizerDB]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[spUpdateProfile]
@TableName = N'User2',
@First_Name = N'Caress',
@Middle_Name = N'caress',
@Last_Name = N'Caress',
@Birthday = N'02/06/1992',
@Address = N'asf',
@Websites = N'asd',
@Email = N'a@dfsgsd',
@Contact_Number = N'42',
@Gender = N'Female'
SELECT 'Return Value' = @return_value
GO
我收到这些错误
Msg 207,Level 16,State 1,Line 1无效的列名' Caress'。消息 207,Level 16,State 1,Line 1无效的列名' caress'。消息207, 级别16,状态1,第1行无效的列名称' Caress'。 Msg 207,等级 16,状态1,第1行无效的列名称' asf'。 Msg 207,Level 16, 状态1,第1行无效的列名称' asd'。 Msg 207,Level 16,State 1, 第1行无效的列名称' a @ dfsgsd'。 Msg 207,Level 16,State 1, 第1行无效的列名称'女性'。
当我打印我的SQLstring时,这里是......
INSERT INTO [dbo].[User2](First_Name,
Middle_Name,
Last_Name,
Birthday,
Address,
Websites,
Email,
Contact_Number,
Gender) VALUES(Caress,caress,Caress,1992-02-06,asf,asd,a@dfsgsd,42,Female)
顺便说一下,我在C#网络程序上使用存储过程。我运行我的网站时看到相同的错误消息。我尝试使用"在MSSQL管理服务器上执行存储过程和C#程序(通过parameters.add ....)输入值,请帮助。谢谢!
答案 0 :(得分:1)
试
SET @SQLString1= 'INSERT INTO [dbo].[' + @TableName +
'](First_Name,
Middle_Name,
Last_Name,
Birthday,
Address,
Websites,
Email,
Contact_Number,
Gender) VALUES(''' + @First_Name + ''','''
+@Middle_Name + ''','''
+@Last_Name + ''','''
+convert(nvarchar(max),@Birthday) + ''','''
+@Address + ''','''
+@Websites + ''','''
+@Email + ''','''
+@Contact_Number +''','''
+@Gender +''')'
print @SQLString1
EXEC (@SQLString1)