我没有看到任何重复的问题,但想知道是否有人可以提供一些很好的例子,特别是围绕这些问题的最佳实践。
最佳答案
准备好的语句是预编译语句,您可以在数据库上对其运行多次,并且 SQLServer 不会在您每次运行它时解析或生成不同的执行计划。通常,您在客户端上下文中运行准备好的语句(使用 JDBC、ADO.NET、ODBC 或任何其他客户端访问技术)。
Java 中的预准备语句(当然使用 JDBC)类似于:
PreparedStatement ps = conn.prepareStatmente("insert into t(field1) values (?)");
ps.setString(1, "Hello");
ps.executeUpdate();
ps.setStrgin(2, "World");
ps.executeUpdate();
ps.close();
// two rows will be inserted into table t:
// field1 => "Hello"
// field1 => "world"
Dynamic SQL是运行 SQLServer 中存储过程或函数内动态变量(即字符串)中存储的任何 SQL 语句的能力。您可以在提供的链接中找到一些示例。
关于sql - 什么是准备好的陈述?它们与动态sql有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3553120/