【发布时间】:2014-10-21 14:58:15
【问题描述】:
我想运行如下脚本:
CREATE LOGIN [me] WITH PASSWORD = @0
然后像这样运行它:
var createUserCommand = conn.CreateCommand();
createUserCommand.CommandText = script;
createUserCommand.Parameters.AddWithValue("@0", passwordDecrypted);
但是,这会引发:
System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的第一次机会异常
附加信息:“@0”附近的语法不正确。
根据我在网上阅读的内容(无官方信息,仅来自 SO 答案/cmets),无法将 SQL 参数与 DDL 语句一起使用。欢迎链接到官方文档!
好的。我确实需要这个参数化。在我看来,有两种选择:
- 我手动清理 (
.Replace("'", "''") => 我怎样才能做到最好? - 我调用 .NET 为我清理。但是我认为这在 ADO.NET 中没有经过清理,而只是通过 SQL Server 进行了清理,并在那里进行了清理......
最好的方法是什么?
【问题讨论】: