簡體   English   中英

使用動態SQL從臨時表插入表; 錯誤:將varchar轉換為數值類型的算術溢出錯誤

[英]Insert into table from temp table using dynamic SQL; Error: Arithmetic overflow error converting varchar to data type numeric

我正在研究SQL Server存儲過程。

這是有效的代碼部分:

INSERT INTO [MYBASE].dbo.[DatabaseName]
    ([Employee No_], [From Date], [To Date], [Description], [Quantity],[First Name], [Last Name])   
    SELECT 
        EmployeeNo, FromDate, ToDate, Description, Quantity, 
        FirstName, LastName 
    FROM 
        #User_Data  

現在,我需要更改此部分:

INSERT INTO [MYBASE].dbo.[DatabaseName]

其中DatabaseName將是變量。

我已經試過了:

CREATE TABLE #User_Data 
(
    User_id INTEGER,
    FirstName VARCHAR(30),
    LastName VARCHAR(30),
    EmployeeNo VARCHAR(20),
    Description VARCHAR(50),
    FromDate DATETIME,
    ToDate DATETIME 
)

INSERT INTO #User_Data
    SELECT u.fname, u.lname, u.employee_no,  ... (this works)

DECLARE @InsertStatement VARCHAR(MAX)

SET @InsertStatement =
     'INSERT INTO [MYBASE].dbo.[' + @DatabaseName + ']
               ([Employee No_], [From Date], [To Date], [Description],
                [Quantity], [First Name], [Last Name])   
          SELECT 
              EmployeeNo, FromDate, ToDate, Description,
              Quantity, FirstName, LastName 
          FROM 
              #User_Data'   

    EXEC(@InsertStatement)

但它不起作用。 這是我得到的錯誤:

將varchar轉換為數值數據類型的算術溢出錯誤。

請幫忙。

我一直在使用同義詞來避免在引號中寫:

Declare @MyDB as nvarchar(100) = 'myDBName'

if exists(select * from sys.synonyms where name = N'TableinMyDB') drop synonym [TableinMyDB];
exec('CREATE SYNONYM [TableinMyDB] FOR [' + @MyDB + '].dbo.[myTableName];');

 INSERT INTO [TableinMyDB]
               (
                [Employee No_]
               ,[From Date]
               ,[To Date]
               ,[Description]
               ,[Quantity]
               ,[First Name]
               ,[Last Name]
               )   

        SELECT 
               EmployeeNo 
               ,FromDate 
               ,ToDate
               ,Description
               ,Quantity
               ,FirstName
               ,LastName 
                FROM #User_Data  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM