丁言辉吧 关注:26贴子:4,905
  • 4回复贴,共1

使用动态SQL的四种方法

只看楼主收藏回复

使用动态SQL,共分成四种方法:
方法      支持的SQL语句
1         该语句不包含宿主变量,该语句不是查询语句
2         该语句包含输入宿主变量 ,该语句不是查询语句
3         包含已知数目的输入宿主变量或列的查询
4         包含未知数目的输入宿主变量或列的查询  
     方法1:使用EXECUTE IMMEDIATE命令实现,具体语法为:
EXEC SQL EXECUTE IMMEDIATE { :host_string | string_literal };
其中,host_variable和string是存放完整T-SQL语句。
请看下面这个例子。这个例子的作用是执行用户随意输入的合法的SQL语句。
char dyn_stmt[132];
...
for (;;)
{
     printf("Enter SQL statement: ");
     gets(dyn_stmt);
     if (*dyn_stmt == '\0')
         break;
     /* dyn_stmt now contains the text of a SQL statement */
     EXEC SQL EXECUTE IMMEDIATE :dyn_stmt;
}
...
   EXECUTE IMMEDIATE命令的作用是:分析该语句的语法,然后执行该语句。方法1适合于仅仅执行一次的语句。



1楼2010-12-04 22:24回复
    啊~~~~看不懂。
                消灭他!


    IP属地:浙江4楼2010-12-14 09:16
    回复
      太感谢了!有用!


      来自iPhone客户端5楼2017-07-20 11:36
      回复
        不过方法4的DESCRIBE语句为什么要两次?OPEN后面的describe是不是可以不用啊


        来自iPhone客户端6楼2017-07-20 11:37
        收起回复