什么是SQL Server中的TeraData PREPARE语句的等价物

时间:2014-10-24 16:15:21

标签: sql-server sql-server-2008 teradata data-migration prepare

我正处于将大型tera数据存储过程转换为SQL Server的情况。我已经完成了大部分工作,但下面的代码让我很难过。我也试图找到关于此的在线帮助,但除了描述之外,我还没有看到PREPARE语句如何与Cursor一起运行的工作示例。 (我真的不太了解TeraData,自从我开始研究它以来只有2周了)

SET cur_stmt1=v_select_stmt||v_where_stmt;

      PREPARE s1 FROM cur_stmt1; 
      OPEN cur1;

                   SET v_record_cnt = Activity_Count;
                   IF(v_record_cnt=0) THEN
                   close cur1;

                   SET cur_stmt1='select 0 as cnt1,' || v_col_null_stmt;
                   PREPARE s1 FROM cur_stmt1; 
                   OPEN cur1;
                   end if;

有人可以帮助我将此代码翻译成更多T-SQL格式吗?

1 个答案:

答案 0 :(得分:1)

要返回SELECT的结果,你需要在Teradata(和标准SQL)中使用光标,当然这不是一个真正的光标,你在另一行之后取一行,它只是一个像一个像一个线轴任何其他结果集。

在你的情况下,使用动态SQL的SELECT,所以这应该转换为T-SQL

EXEC sp_executesql @cur_stmt1;

然后,它只是检查答案集是否为空,并返回一个单行答案集,而不是select 0 ...

相关问题