Din*_*lla 8 sql database sql-server select sql-server-2008
我有三个具有不同数据的表,我需要插入一个TEMP表并在StoredProcedure中返回该表.
我试过:
-- To get last 10 Days Letters count
SELECT col1,col2,1 AS Type, LettersCount
INTO #temp FROM tblData
-- To get last 4 weeks Letters count
SELECT col1,col2,2 AS Type, LettersCount
INTO #temp FROM tblData
-- To get month wise Letters count
SELECT col1,col2,3 AS Type, LettersCount
INTO #temp FROM tblData
Run Code Online (Sandbox Code Playgroud)
显示错误为
Msg 2714, Level 16, State 1, Line 16
There is already an object named '#temp ' in the database.
Msg 102, Level 15, State 1, Line 24
Incorrect syntax near 'T'.
Msg 2714, Level 16, State 1, Line 32
There is already an object named '#temp ' in the database.
Run Code Online (Sandbox Code Playgroud)
Gan*_*kar 20
您可以检查它是否已存在
IF OBJECT_ID ('tempdb..#TempLetters') is not null
drop table #TempLetters
SELECT col1,col2,1 AS Type, LettersCount
INTO #TempLetters FROM tblData
-- To get last 4 weeks Letters count
INSERT INTO #TempLetters
SELECT col1,col2,2 AS Type, LettersCount
FROM tblData
-- To get month wise Letters count
INSERT INTO #TempLetters
SELECT col1,col2,3 AS Type, LettersCount
FROM tblData
Run Code Online (Sandbox Code Playgroud)
该SELECT INTO
语句还可用于使用另一个不应存在的select * into tablename from ..
此处tablename
表的架构创建一个新的空表
。
像这样改变你的插入:
SELECT col1,
col2,
1 AS Type,
LettersCount
INTO #temp
FROM tblData
-- To get last 4 weeks Letters count
INSERT INTO #temp
SELECT col1,col2,2 AS Type,LettersCount
FROM tblData
-- To get month wise Letters count
INSERT INTO #temp
SELECT col1,col2,3 AS Type,LettersCount
FROM tblData
Run Code Online (Sandbox Code Playgroud)
创建临时表一次,然后为其他两个 SELECT 语句插入其中:
SELECT col1, col2, 1 AS Type, LettersCount
INTO #temp
FROM tblData;
INSERT INTO #temp
SELECT col1, col2, 2 AS Type, LettersCount
FROM tblData;
INSERT INTO #temp
SELECT col1, col2, 3 AS Type, LettersCount
FROM tblData;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42029 次 |
最近记录: |