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/