如何更改 SQL 插入语句的目标表?

Posted

技术标签:

【中文标题】如何更改 SQL 插入语句的目标表?【英文标题】:How to change the target table of a SQL insert statement? 【发布时间】:2008-12-20 07:16:27 【问题描述】:

您将如何编写一个 sql 语句,该语句允许您插入从表单获得的数据,但将根据表单上选择的内容将其输入到一个表或另一个表中?我知道如何将表单中的数据插入到指定的表中,但我需要能够使用表单来选择将数据输入到哪个表中。这是我的表格的副本...

print("<form action="<?=$php_SELF?>" enctype="multipart/form-data" method="post">
  <fieldset>
  <legend>Upload Your Motions and Orders Here</legend>
  <table  border="0">
    <tr>
      <td class="label"> <label for="label">Select Your File:</label>    
    </p></td>
      <td class="input"><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
      <input type="file" name="thefile" value="<? echo $thefile; ?>" accesskey="s" tabindex="10"></td>
    </tr>
    <tr>
      <td class="label"><span class="input">
        <label for="label">Type of File:</label>
      </span></td>
      <td class="input"><select name="field" id="field" value="<? echo $field; ?>" accesskey="t" tabindex="20">
        <option value="Motions">Motions</option>
        <option value="Orders">Orders</option>
        </select>      </td>
    </tr>
    <tr>
      <td class="label"><label for="label">Name of File:</label> </td>
      <td class="input"><label for="type"></label>
      <input type="text" name="name" id="name" value="<? echo $name; ?>" accesskey="n" tabindex="30"></td>
    </tr>
    <tr>
      <td class="label"><label for="label">Date Filed In Court:</label> </td>
      <td class="input"><label for="date"></label>
      <input type="text" name="date" id="date" value="<? echo $date; ?>" accesskey="f" tabindex="40"></td>
    </tr>
    <tr>
      <td class="label"><span class="input">
        <label for="label">Description:</label>
      </span></td>
      <td class="input"><textarea name="description" id="description" cols="30" rows="5" value="<? echo $description; ?>" accesskey="d" tabindex="50"></textarea></td>
    </tr>
    <tr>
      <td class="label">&nbsp;</td>
      <td class="input"><input type="submit" name="submit" value="Upload This File" /></td>
    </tr>
  </table>
  </fieldset>
</form>");`
<form action="<?=$PHP_SELF?>" enctype="multipart/form-data" method="post">
  <fieldset>
  <legend>Upload Your Motions and Orders Here</legend>
  <table  border="0">
    <tr>
      <td class="label"> <label for="label">Select Your File:</label>    
    </p></td>
      <td class="input"><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
      <input type="file" name="thefile" value="<? echo $thefile; ?>" accesskey="s" tabindex="10"></td>
    </tr>
    <tr>
      <td class="label"><span class="input">
        <label for="label">Type of File:</label>
      </span></td>
      <td class="input"><select name="field" id="field" value="<? echo $field; ?>" accesskey="t" tabindex="20">
        <option value="Motions">Motions</option>
        <option value="Orders">Orders</option>
        </select>      </td>
    </tr>
    <tr>
      <td class="label"><label for="label">Name of File:</label> </td>
      <td class="input"><label for="type"></label>
      <input type="text" name="name" id="name" value="<? echo $name; ?>" accesskey="n" tabindex="30"></td>
    </tr>
    <tr>
      <td class="label"><label for="label">Date Filed In Court:</label> </td>
      <td class="input"><label for="date"></label>
      <input type="text" name="date" id="date" value="<? echo $date; ?>" accesskey="f" tabindex="40"></td>
    </tr>
    <tr>
      <td class="label"><span class="input">
        <label for="label">Description:</label>
      </span></td>
      <td class="input"><textarea name="description" id="description" cols="30" rows="5" value="<? echo $description; ?>" accesskey="d" tabindex="50"></textarea></td>
    </tr>
    <tr>
      <td class="label">&nbsp;</td>
      <td class="input"><input type="submit" name="submit" value="Upload This File" /></td>
    </tr>
  </table>
  </fieldset>
</form>

文件选择字段的类型将决定数据将插入的表。

【问题讨论】:

【参考方案1】:

我会远离运行动态 sql。由于您有一个已知类型列表,您可以根据文件类型将选择表的逻辑放在应用层的案例语句中。另一种选择是使用 case 语句或一组 if 语句创建存储过程。这样你就不会为插入构造动态 sql。

【讨论】:

以上是关于如何更改 SQL 插入语句的目标表?的主要内容,如果未能解决你的问题,请参考以下文章

SQL:插入语句,但假设您不知道源头和目标头

sql语句 怎么从一张表中查询数据插入到另一张表中

sql语句 怎么从一张表中查询数据插入到另一张表中

sql语句 怎么从一张表中查询数据插入到另一张表中

如何使用 SQL 中的 Case 语句将数据插入临时表

SQL server 跨库插入数据