2012-08-24 135 views
0

其實我已經創建了包含類似@#$$%Id%^$#特殊字符的列名SQL Server表,我已經創建了一個插入查詢,插入值,如:與在SQL Server表列特殊字符處理命名

Insert into MyTable ([@#$$%Id%^$#]) values (@@#$$%Id%^$#) 

之後傳遞的參數值:

SqlCommand cmd = new SqlCommand (「Insert into MyTable ([@#$$%Id%^$#]) values (@@#$$%Id%^$#) 」); 
cmd.Parameters.Add(new SqlParameter (「(@@#$$%Id%^$#」, ParameterValue)) 

執行此代碼後,我得到了

必須聲明標量變量@

+0

不要在Word中編輯並粘貼在這裏(聰明的引號不是那麼聰明)。 – Oded

+0

你爲什麼這樣做? – podiluska

回答

4

這不會有任何效果:

Insert into MyTable ([@#$$%Id%^$#]) values (@@#$$%Id%^$#) 

除非你聲明的變量是這樣的:

DECLARE @@#$$%Id%^$# INT = 1; 

然而,這不是有效的語法。因此,也許你的意思是插入整個價值作爲一個字符串:

Insert into MyTable ([@#$$%Id%^$#]) values ('@@#$$%Id%^$#') 

您使用字符串中的領先@的是混亂 - 你意味着是一個參數指定?這對我很好:

CREATE TABLE dbo.MyTable([@#$$%Id%^$#] VARCHAR(255)); 

INSERT dbo.MyTable([@#$$%Id%^$#]) VALUES('@@#$$%Id%^$#'); 

DROP TABLE dbo.MyTable;