sql-server - 如何将 SAS 创建的表移动到 sql server 中的不同文件组
问题描述
我们有一个过程,在 SAS 中生成一个表,我们使用该 SAS 生成的表在 SQL Server 中创建一个表,但是,该表是在默认文件组上创建的,但我需要更改代码以指定不同的文件组由于空间限制,需要在哪里创建它。SAS上写的代码如下(下),DBO.TBL_A是SAS Created表,DBO.TBL是要在SQL server中创建的表。我尝试做的是在下面添加那行代码来指定我想要添加到的文件组,但是 SAS 给了我一个错误(见图),我对 SAS 不是很技术,我不知道为什么这行代码不管用。我错过了什么?
CREATE TABLE DBO.TBL[![enter image description here][1]][1]
AS
SELECT
input(&varFileDate, BEST22.) as FileDate ,
TRIM(SSN) as SSN ,
ExmDescription ,
Status ,
ScaledScore ,
ExamDate
FROM DBO.TBL_A
ORDER BY SSN;
-- I tried the following
CREATE TABLE DBO.TBL
AS
SELECT
input(&varFileDate, BEST22.) as FileDate ,
TRIM(SSN) as SSN ,
ExmDescription ,
Status ,
ScaledScore ,
ExamDate
FROM DBO.TBL_A
ORDER BY SSN
ON [STAGING_DATA_FG02] WITH (DATA_COMPRESSION = PAGE)
我添加了 ON [STAGING_DATA_FG02] WITH (DATA_COMPRESSION = PAGE); 紧接在 ; 但它不会工作
解决方案
假设 libref DBO 是到远程数据库的连接。所以也许是这样的
libname dbo odbc .... ;
如果你想告诉它在数据库的不同位置创建新表,你可以使用SCHEMA= dataset 选项。
create table dbo.tbl (schema='STAGING_DATA_FG02') ....
否则,使用显式传递以使用本机 SQL 语法来创建表。如果源和目标都在该数据库中,那可能是最好的选择,因为那时根本不需要将数据移动到 SAS。
proc sql;
connect using dbo ;
execute by dbo (
... your remote database code goes here ...
);
推荐阅读
- oracle - SQL 代理作业上的 SSIS 部署失败 - Oracle 连接管理器
- java - 如何在 mongodb 中使用嵌套文档执行可分页查询?
- python - 使用 Python 自动化 Google 表单
- cypress - 在 Cypress 中组织新的端到端测试的一般做法
- api - 是否有现有软件可以从经纪账户导入所有数据?
- javascript - 返回一个嵌套的 observable
- java - 关于oshi-core,我使用m1(macbook air)
- javascript - 从代码中的 Fancybox 中删除 Share 元素图标
- android - 设计数据库用户有很多特权
- r - 使用 R 将数据帧的行设置为 NA