gpt4 book ai didi

SQL Server : multiple inserts into temp table while creating a value for each different insert

转载 作者:行者123 更新时间:2023-12-03 02:53:58 26 4
gpt4 key购买 nike

请原谅我的代码,我还在学习。

我想要做的是将多个 select 语句插入到一个临时表中。对于每个 select 语句,我想要某种标识来知道数据来自哪个 select 语句。

我有一个粗略的想法,可以使用下面的 case 语句。

错误:

Msg 8152, Level 16, State 14, Line 14
String or binary data would be truncated.

代码:

if object_id('tempdb..#PP') is not null 
drop table #PP

SELECT
#Pr.*,
Case
When TranID = TranID then 'BK Problem'
Else 'Error' End as 'Test'
INTO #PP
FROM #Pr
WHERE TypeID = 't'

--CCA Test
INSERT INTO #PP
SELECT
#Pr.*,
Case
When TranID = TranID then 'CCA Problem'
Else 'Error' End as 'Test'
FROM #Pr
WHERE TypeID = 'r'

我感谢任何为我指明正确方向的帮助。

谢谢

最佳答案

如果像这样使用SELECT.. INTO..,则列长度由第一次插入时每列的最大长度决定。

所以..首先插入“BK Problem”,创建长度为“BK Problem”或10的Test列。
(这样做可以看到:PRINT LEN('BK Problem'))

然后将“CCA Problem”插入Test失败,因为它的长度为11并且太长。

我也不明白您的案例陈述的必要性,请尝试以下操作:

SELECT #Pr.*, CAST('BK Problem' as VARCHAR(11)) Test
INTO #PP
FROM #Pr
WHERE TypeID = 't'

--CCA Test
INSERT INTO #PP
SELECT #Pr.*, 'CCA Problem'
FROM #Pr
WHERE TypeID = 'r'

关于SQL Server : multiple inserts into temp table while creating a value for each different insert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com