![](/img/trans.png)
[英]How to modify table name dynamically using INSERT statement in stored procedure
[英]Insert values using stored procedure with dynamic table name
我有此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
我得到這些錯誤
消息207,級別16,狀態1,第1行無效的列名稱'Caress'。 消息207,級別16,狀態1,第1行無效的列名稱“ caress”。 消息207,級別16,狀態1,第1行無效的列名稱'Caress'。 消息207,級別16,狀態1,第1行無效的列名稱'asf'。 消息207,級別16,狀態1,第1行無效的列名稱“ asd”。 消息207,級別16,狀態1,第1行無效的列名稱'a @ dfsgsd'。 消息207,級別16,狀態1,第1行無效的列名稱“ Female”。
當我打印我的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#Web程序上使用存儲過程。 當我運行我的網站時,我看到相同的錯誤消息。 我嘗試使用“在MSSQL管理服務器和C#程序上執行存儲過程(通過parameters.add ....)來輸入值,請幫忙。謝謝!
嘗試
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.