SAS初学者。
INTRO: 在SQL Server Management Studio中,当您尝试创建已存在的对象/表时,会引发错误。所以解决方案是首先DROP表,然后创建它。
那么SAS怎么来我写这样的东西......(假装示例表存在)
PROC SQL;
CREATE TABLE Example AS
SELECT *
FROM Work.Test;
QUIT;
问题: 即使Example对象/表已经存在,也不会抛出任何错误。有谁知道为什么SAS或SQL Server Management Studio在这方面有所不同?
答案 0 :(得分:7)
SAS有一个默认OPTION REPLACE
,告诉SAS您希望允许此行为。
如果您要禁用此功能,请设置OPTION NOREPLACE
。正如上面的文档所述,这不会阻止上述操作执行,因为它位于work
库(它是一个临时库)中。
至于为什么(为什么会有所不同),这无疑是由于语言的使用方式存在历史差异。 SAS实际上并不是一种数据库语言(虽然它与它们共享很多,包括内置的PROC SQL);它也比SQL Server大得多(起源于20世纪60年代,甚至在PL / 1和PL / 2之前)。 SQL Server为您提供了许多用于更新表的工具; SAS有许多这样的工具,但由于各种原因,SAS程序员倾向于替换表而不是更新它们。