0

実際には、次のような特殊文字を含む列名を持つ SQL Server テーブルを@#$$%Id%^$#作成し、次のような値を挿入するための挿入クエリを作成しました。

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

その後、パラメーター値を次のように渡します。

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

このコードを実行した後、私は得ました

スカラー変数を宣言する必要があります @

4

1 に答える 1

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;
于 2012-08-24T15:36:57.033 に答える