久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 SQL Server 2012 中插入臨時(shí)表的問題

Issue inserting into a temp table in SQL Server 2012(在 SQL Server 2012 中插入臨時(shí)表的問題)
本文介紹了在 SQL Server 2012 中插入臨時(shí)表的問題的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我正在嘗試將 XML 列中的一些 XML 數(shù)據(jù)插入到 SQL Server 2012 中的臨時(shí)表中.

I'm trying to insert some XML data from a XML column into a temp table in SQL Server 2012.

這是我當(dāng)前的查詢

DECLARE @XML AS XML, @hDoc AS INT, @SQL NVARCHAR (MAX)

IF OBJECT_ID('tempdb..dbo.#txn','u') IS NOT NULL
BEGIN
    PRINT '#temp exists! drop table'
    DROP TABLE tempdb.dbo.#txn;
END
ELSE
BEGIN
    PRINT '#temp does not exist! create table'

    CREATE TABLE #txn
    (
        accountcode varchar(100),
        tienda varchar(100),
        caja varchar(100),
        cajero varchar(100),
        fecha varchar(100),
        transaccion varchar(100),
        itemcode varchar(100),
        description varchar(100),
        quantity numeric(10,3),
        weight numeric(10,3),
        qty_weight numeric(10,3),
        unitprice numeric(15,3),
        totalprice numeric(15,3),
        vatcode varchar(100),
        hashcode varchar(100),
        anulado varchar(100)    
    )
END

SELECT @XML = [LoadedXML] FROM [dbo].[XmlImport]

EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML

INSERT INTO #txn (accountcode, tienda, caja, cajero, fecha, transaccion, itemcode, description, quantity, weight, qty_weight, unitprice, totalprice, vatcode, hashcode, anulado)

    SELECT 
        CASE
            WHEN codigotienda = 1 THEN '01'
        END as accountcode,
        tienda,
        caja,
        cajero,
        fecha,
        transaccion,
        itemcode,
        description,
        quantity,
        weight,
        CASE
            WHEN quantity IS NULL THEN weight
            WHEN weight IS NULL THEN quantity
        END as qty_weight,
        unitprice,
        totalprice,
        CASE
            WHEN vatcode = 4 THEN 'V0'
            WHEN vatcode = 1 THEN 'V1'
            WHEN vatcode = 2 THEN 'V2'
            WHEN vatcode = 3 THEN 'V3'
            WHEN vatcode is NULL THEN 'V0'
        END AS vatcode,
        hashcode,
        anulado
    FROM 
        OPENXML(@hDoc, 'tcpos-export/transactions/transaction/trans-item') 
    WITH 
        (
            codigotienda [varchar](100) '../shop/code',
            tienda [varchar](100) '../shop/description',
            caja [varchar](100) '../till/code',
            cajero [varchar](100) '../cashier/code',
            fecha [varchar](100) '../beginning-timestamp',
            transaccion [varchar](100) '../trans-num',
            itemcode [varchar](100) 'code',
            description [varchar](100) 'description',
            quantity numeric(10,3) 'quantity',
            weight numeric(10,3) 'weight',
            unitprice numeric(15,3) 'unit-price',
            totalprice numeric(15,3) 'taxable-amount',
            vatcode [varchar](100) 'vat-code',
            hashcode [varchar](100) 'hash-code',
            anulado [varchar](100) 'delete-operator-id'
         )

SELECT * 
FROM #txn
WHERE hashcode IS NOT NULL
  AND totalprice NOT LIKE '%-%'
  AND unitprice NOT LIKE '%-%'
  AND anulado IS NULL
ORDER BY 
  CAST(hashcode AS int)

--LEFT JOIN [MAXIMERCADODEMO].[dbo].OITM sap

--ON #txn.itemcode = sap.itemcode COLLATE SQL_Latin1_General_CP1_CI_AS

--where #txn.itemcode is null

--SELECT #txn.itemcode FROM #txn

--LEFT JOIN [MAXIMERCADODEMO].[dbo].OITM sap

--ON #txn.itemcode = sap.itemcode COLLATE SQL_Latin1_General_CP1_CI_AS

--where #txn.itemcode is null

EXEC sp_xml_removedocument @hDoc

這是第一次有效.當(dāng)我第二次運(yùn)行它時(shí),它應(yīng)該刪除臨時(shí)表,但我收到了這個(gè)錯(cuò)誤:

This works the first time. When I run it a second time, it should drop the temp table, but I get this error instead:

#temp 不存在!創(chuàng)建表

#temp does not exist! create table

Msg 2714, Level 16, State 6, Line 11
數(shù)據(jù)庫中已經(jīng)有一個(gè)名為#txn"的對象.

Msg 2714, Level 16, State 6, Line 11
There is already an object named '#txn' in the database.

我不知道你們是否建議我使用臨時(shí)表或在我的數(shù)據(jù)庫中創(chuàng)建一個(gè)真實(shí)的表來管理這種情況?

I don't know if you guys recommend me using a temp table or create a real table in my database to manage this situation?

推薦答案

這個(gè)

 IF OBJECT_ID('tempdb..#txn','u') IS NOT NULL

應(yīng)該

 IF OBJECT_ID('tempdb..#txn', 'u') IS NOT NULL DROP TABLE #txn;

你甚至可以逃脫:

 IF OBJECT_ID('tempdb..#txn') IS NOT NULL

一旦您進(jìn)行此更改,您就不再需要為此檢查大的 IF 語句.

Once you make this change you no longer need the big IF statement checking for this.

這篇關(guān)于在 SQL Server 2012 中插入臨時(shí)表的問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Modify Existing decimal places info(修改現(xiàn)有小數(shù)位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關(guān)名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運(yùn)算符字符串中刪除重復(fù)項(xiàng))
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關(guān)系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 亚洲欧洲日韩精品 中文字幕 | 国产网站在线免费观看 | 亚洲成年人免费网站 | 中文字幕综合 | 蜜桃久久 | 亚洲精品一区二区三区免 | 波多野结衣一区二区三区 | h小视频 | 国产在线高清 | 精品久久香蕉国产线看观看亚洲 | 成人av电影免费在线观看 | 久久久91精品国产一区二区三区 | 国产精品一区久久久 | 黑人中文字幕一区二区三区 | 国产在线一区二 | 激情av免费看 | 免费日韩网站 | 欧美看片 | 91精品国产一区二区三区香蕉 | 日韩免费视频一区二区 | 精品粉嫩aⅴ一区二区三区四区 | 天堂久久一区 | 亚洲欧洲色视频 | 色婷婷综合久久久中文字幕 | 亚洲一区免费 | 欧美亚洲国语精品一区二区 | 国产精品99久久久久久久vr | 国产成人99久久亚洲综合精品 | 中文字幕在线观 | 在线视频一区二区三区 | 中文字幕视频在线看 | 2018天天干天天操 | 国产一区二区视频免费在线观看 | 日本一区二区不卡视频 | 婷婷精品| 91精品久久久久久久久久入口 | 久久久久无码国产精品一区 | 视频一区中文字幕 | 日韩精品一区二区三区在线观看 | 日本不卡一区 | 在线视频91|