在C#中使用SQL参数DROP INDEX

在C#中使用SQL参数DROP INDEX,第1张

概述我正在尝试通过在删除SQL Server索引时使用参数来遵循最佳实践(并且还删除Visual Studio代码分析警告). 不使用参数工作正常: string tableName = "dbo.TableName";SqlCommand sqlCommand = new SqlCommand("DROP INDEX Blah ON " + tableName);sqlCommand.Con 我正在尝试通过在删除sql Server索引时使用参数来遵循最佳实践(并且还删除Visual Studio代码分析警告).

不使用参数工作正常:

string tablename = "dbo.tablename";sqlCommand sqlCommand = new sqlCommand("DROP INDEX Blah ON " + tablename);sqlCommand.Connection = sqlConnection;sqlCommand.ExecuteNonquery();

但是,当我尝试使用参数时,我收到错误

Incorrect Syntax near ‘@tablename’.

码:

string tablename = "dbo.tablename";sqlCommand sqlCommand = new sqlCommand("DROP INDEX Blah ON @tablename");sqlCommand.Parameters.Add(new sqlParameter("tablename",tablename));sqlCommand.Connection = sqlConnection;sqlCommand.ExecuteNonquery();

我究竟做错了什么?

解决方法 你没有做错任何事.参数不能用于替换标识符 – 列名称/别名,表名称/别名,模式名称和数据库名称.它们也不能用于替换函数名称或运算符或关键字.

这是一个很长的清单.它们可用于替换查询中的常量.

我想记住这个的方法是参数化查询可以预编译.为了编译查询,需要解析所有对象引用 – 因此参数不能提供值.

您已经通过将表放在字符串中来解决问题.您可以使用quotename()来帮助防止注射(参见here).

总结

以上是内存溢出为你收集整理的在C#中使用SQL参数DROP INDEX全部内容,希望文章能够帮你解决在C#中使用SQL参数DROP INDEX所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存