SAS初学者在这里。

介绍:
在SQL Server Management Studio中,当您尝试创建已经存在的对象/表时,将引发错误。因此,解决方案是先删除表,然后创建它。

那么在SAS中,我可以这样写...(假设存在Example表)

PROC SQL;
    CREATE TABLE Example AS
        SELECT *
        FROM Work.Test;
QUIT;

问题:
即使Example对象/表已经存在,也不会引发任何错误。有谁知道为什么SAS或SQL Server Management Studio在这方面有所不同?

最佳答案

SAS具有默认的 OPTION REPLACE ,它告诉SAS您希望允许这种行为。

如果要禁用此功能,请设置OPTION NOREPLACE。如上述文档所述,但这不会阻止上述操作的执行,因为它位于work库(这是一个临时库)中。

至于为什么(为什么会有所不同),这无疑是由于语言使用方式的历史差异而引起的。 SAS并不是真正的数据库语言(尽管它与它们共享很多,包括内置的PROC SQL)。它也比SQL Server早得多(起源于1960年代,甚至早于PL/1和PL/2)。 SQL Server为您提供了许多用于更新表的工具。 SAS有许多这样的工具,但是由于各种原因,SAS程序员倾向于替换表而不是就地更新它们。

关于sql - 创建我已经存在的表时,SAS,Proc SQL为什么不会引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33443779/

10-14 07:20