Mysql SQL查询中的.Net动态表名?

Mysql SQL查询中的.Net动态表名?,mysql,sql,.net,Mysql,Sql,.net,如何在下面的SQL查询中使用动态表名 "INSERT INTO `tableName` (`ADUC`, `DHCP`, `DISK`, `DNS`, `Exchange`, `HOSTNAME`, `HWID`, `IP`, `OS`) values (@aduc,@dhcp,@disk,@dns,@exchange,@hostname,@hwid,@ip,@os)" 目前我通过 Dim tableName = My.Computer.Name.ToString 我希望表名反映计算机名称,

如何在下面的SQL查询中使用动态表名

"INSERT INTO `tableName` (`ADUC`, `DHCP`, `DISK`, `DNS`, `Exchange`, `HOSTNAME`, `HWID`, `IP`, `OS`) values (@aduc,@dhcp,@disk,@dns,@exchange,@hostname,@hwid,@ip,@os)"
目前我通过

Dim tableName = My.Computer.Name.ToString
我希望表名反映计算机名称,因为这是我在PhpMyAdmin中创建的名称,所以有什么想法吗


请注意
`
需要保留在表名的两侧,以便在查询中支持连字符表名。

您可以创建如下存储过程,并将表名和值作为参数传递,因为您已经知道表架构

"INSERT INTO `"+tableName+"` (`ADUC`, `DHCP`, `DISK`, `DNS`, `Exchange`, `HOSTNAME`, `HWID`, `IP`, `OS`) values (@aduc,@dhcp,@disk,@dns,@exchange,@hostname,@hwid,@ip,@os)"
创建表dynamictest

创建表dynamictest(id varchar(max))

现在需要插入值,但表名是动态的,所以需要传递它

create PROCEDURE [dbo].[mssql_DynamicTableTest]
@LogTable VARCHAR(1024),
@code NVARCHAR(Max)


AS
BEGIN

DECLARE 

    @sql    NVARCHAR(MAX),
    @params NVARCHAR(Max);

SET @params = N'@LogTable VARCHAR(1024),@code NVARCHAR(Max)';

 SET @sql = N'INSERT INTO '+@LogTable+' VALUES ('''+@code+''')';
 select @sql;


  EXEC sp_executesql @sql, @params, @LogTable,@code;



END

现在通过传递表名“dynamictest”和值“test”来执行able存储过程。。。谢谢你,我会接受的,当它允许我。小心,这个方法不能防止SQL注入。如果外部提供了
tableName
变量(例如用户),则可以将查询操作为多个查询,并且可以对数据库执行任何所需的查询,包括删除所有数据。