在这种情况下如何使用SQL参数

Mig*_*uel 3 .net sql vb.net sql-server

我的查询是这样的: "SELECT TOP 5 * FROM [TableName] ORDER By NEWID()"

但我想使用SQL参数,所以它可能是这样的: "SELECT TOP @ParameterName * FROM [TableName] ORDER By NEWID()"

正常的方式不起作用:

Ct.Command.CommandText = "SELECT TOP @ParameterName * FROM [TableName] ORDER By NEWID()"
Ct.Command.Parameters.AddWithValue("@ParameterName", SomeValue)
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何添加参数?

gbn*_*gbn 12

只需在参数周围加上括号即可.自SQL Server 2005以来支持

Ct.Command.CommandText = "SELECT TOP (@ParameterName) * FROM [TableName] ORDER By NEWID()"
Run Code Online (Sandbox Code Playgroud)

注意:没有括号的TOP是为了向后兼容; 应始终使用它们

为了向后兼容,支持SELECT语句中没有括号的TOP表达式,但我们不建议这样做.

  • @Manatherin:根本不会让我感到惊讶:-)可能是不同的团队 (2认同)