在創建臨時表並聲明數據類型之後,將數據插入臨時表
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
我該如何在數據庫中的物理表上插入相關數據?
在創建臨時表並聲明數據類型之後,將數據插入臨時表
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
我該如何在數據庫中的物理表上插入相關數據?
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
insert #temptable
select idfield, datefield, namefield from yourrealtable
創建臨時表之後,你只想做一個正常的INSERT INTO() SELECT FROM
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
請注意,這被認爲是窮人的做法:
insert into #temptable
select col1, col2, col3 from othertable
如果臨時表的定義發生更改,則代碼在運行時可能會失敗。
SELECT ID , Date , Name into #temp from [TableName]
正確的查詢:
drop table #tmp_table
select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = '0007'
group by unit_id, new_acc_no
having count(new_acc_no) > 1
我在SQL Server的Insert
方式。另外我通常會檢查是否存在臨時表。
IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable
SELECT b.Val as 'bVals'
INTO #MyTable
FROM OtherTable as b
從所有列中插入的所有數據,只需要使用這樣的:
SELECT * INTO #TempTable
FROM OriginalTable
你已經完成了它之後,你再次嘗試建立它之前不要忘記DROP
臨時表:
DROP TABLE #TempTable
我喜歡這個,因爲我不需要'CREATE'#TempTable' – MAbraham1 2015-02-23 20:52:58
SELECT *
INTO #TempTable
FROM table
這裏最簡單的答案。你也可以使用dbo.MyTable,它將是一個永久表。容易peasy – Fandango68 2017-01-23 07:17:37
節奏的基本操作郭寶宏表如下,修改和按您的要求使用,
- 創建臨時表
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX))
- 值插入到一個臨時表
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- QUERY TEMP TABLE [這將只在同一會話/實例中工作,不在其他用戶會話實例中]
SELECT * FROM #MyTempEmployeeTable
- DELETE VALUE IN TEMP表
DELETE FROM #MyTempEmployeeTable
- DROP臨時表
DROP TABLE #MyTempEmployeeTable
雖然我認識到這是一個臨時表,我仍然不會推薦有人使用varchar(MAX)。 – 2018-02-08 18:41:40
@bp_這是一個廣義的示例片段,它解釋了用戶,用戶可以根據他們的應用程序需求指定數據類型和大小。 – 2018-02-08 21:10:32
我已經提供了兩種方法來解決同樣的問題,
解決方案1:該方法包括2個步驟,首先用 指定數據類型創建臨時表,然後從現有數據 表中插入值。
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX))
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
解決方案2:這種方法很簡單,在這裏你可以直接插入值 臨時表,在系統自動採取與原來相同的數據類型創建 臨時表的護理表。
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
雖然我認識到這是一個臨時表,但我仍然不會推薦使用varchar(MAX)。 – 2018-02-08 18:43:22
此答案與問題無關。你從其他地方獲取這些信息。刪除'new_acc_no','unit_id ='0007'','group by','count(new_acc_no)> 1'等等將轉換成以下精確副本的答案:http://stackoverflow.com/a/15762663/ 1476885 – Zanon 2015-08-10 20:00:59