首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alter ADD tempDB Alter?

Alter ADD tempDB Alter?
EN

Stack Overflow用户
提问于 2019-11-25 15:00:36
回答 2查看 74关注 0票数 0

如何在select中更改tempdb?

我想要一个单一的问题,可以吗?

代码语言:javascript
复制
SELECT cust_ac_no, ord_no, ref_no, net_svc_id, job_type, ord_status, ord_status_date, ord_crt_date
INTO tempdb..xtiankwiksetreport
ALTER table tempdb..xtiankwiksetreport
ADD serial_no varchar(25) null,
    msisdn varchar(25) null,
    imsi varchar(25) null,
    bts_id varchar(25) null
FROM wo_order
WHERE job_type IN ('EXTR', 'EXTC')
AND svc_type='4G'
AND ref_no=2
AND ord_status IN ('PL', 'JL')
EN

回答 2

Stack Overflow用户

发布于 2019-11-25 15:18:55

在您添加sql-server标记之前,我已经开始在Sybase中测试这一点,因此我将提供这两种方法,第一种解释其思想,第二种将证明这在两个DBMS中都是可能的。

请注意,解决方案是有效的,但我不会将其作为长期解决方案。我没有研究这是否会成为一种记录在案的行为,将来可能会失败(或者已经失败了,基于我的数据库版本)。

Sybase

只需在null值上使用convert函数来添加空列。

代码语言:javascript
复制
select 'a' as foo, 
    convert(varchar(25), null) as serial_no
    into #temp

然后,为了测试它,我插入了一个long值:

代码语言:javascript
复制
insert into #temp values ('b', 'abcdefghijklmnopqrstuvwxyz')

结果是:

代码语言:javascript
复制
select * from #temp

foo,serial_no
'a',
'b','abcdefghijklmnopqrstuvwxy'

缺少第26个字符,我们有一个varchar(25)

SQL-服务器

由于截断的值,相同的代码将提供一个错误

代码语言:javascript
复制
select 'a' as foo, convert(varchar(25), null) as serial_no
    into temp_foo

insert into temp_foo values ('b', 'abcdefghijklmnopqrstuvwxyz')
insert into temp_foo values ('c', 'abcdefghijklmnopqrstuvwxy')

select * from temp_foo

带有b的代码行为long提供了一个值,并提供给我:

代码语言:javascript
复制
Msg 8152, Level 16, State 14, Line 4
String or binary data would be truncated.
The statement has been terminated.

但是包含25个字符的c这一行很合适。

代码语言:javascript
复制
foo,serial_no
'a',
'c','abcdefghijklmnopqrstuvwxy'

代码语言:javascript
复制
SELECT 
    cust_ac_no, ord_no, ref_no, net_svc_id, job_type, ord_status, ord_status_date, ord_crt_date,
    convert(varchar(25), null) as serial_no,
    convert(varchar(25), null) as msisdn,
    convert(varchar(25), null) as imsi,
    convert(varchar(25), null) as bts_id,
INTO tempdb..xtiankwiksetreport
FROM wo_order
WHERE job_type IN ('EXTR', 'EXTC')
AND svc_type='4G'
AND ref_no=2
AND ord_status IN ('PL', 'JL')
票数 0
EN

Stack Overflow用户

发布于 2019-11-25 15:32:30

代码语言:javascript
复制
SELECT cust_ac_no, ord_no, ref_no, net_svc_id, job_type, ord_status, ord_status_date, ord_crt_date,
serial_no=convert(varchar(25), null), msisdn-convert(varchar(25), null), imsi=convert(varchar(25), null), bts_id=convert(varchar(25), null)
INTO  tempdb..xtiankwiksetreport
FROM wo_order
WHERE job_type IN ('EXTR', 'EXTC')
AND svc_type='4G'
AND ref_no=2
AND ord_status IN ('JL', 'PL')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59026677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档