簡體   English   中英

Transact SQL,如何獲取varchar類型,轉換為int,加一個,轉換回字符串,然后存儲?

[英]Transact SQL, how can I take varchar type, convert to int, add one, convert back to string, then store?

ALTER PROCEDURE [dbo].[AmendInsertDuplicateFields] (@ReportID varchar(50))
AS
BEGIN
    DECLARE @NewReportID VARCHAR(50)
    SET @NewReportID = NEWID()

    INSERT INTO [MVCOmar].[dbo].[PrideMVCCollisionBegin]
           ([ReportID], [LocalIncidentNum], [version], [MTOReferenceNo], [Submitted]) 
       SELECT 
          @NewReportID, [LocalIncidentNum], [version], [MTOReferenceNo], [Submitted] 
       FROM 
          [MVCOmar].[dbo].[PrideMVCCollisionBegin] 
       WHERE 
          [ReportID] = @ReportID;

我想得到的結果是version ,將其從字符串轉換為int類型,添加一個,轉換回字符串,然后存儲它。

我承認版本應該是int而不是字符串類型。 我也承認,實現此目的的更好方法是將屬性設置為遞增1。

我暫時無法執行任何一種選擇,因為我的優先級現在不同,我時間有限,代碼很舊,並且由許多習慣不良編碼的人編寫。

您不需要轉換,運行它,將有一個隱式轉換

SELECT '1' + 1

返回2

就您而言,您可以執行[version] + 1

您可以使用CONVERT函數在SELECT語句中內聯執行此操作:

INSERT INTO [MVCOmar].[dbo].[PrideMVCCollisionBegin] ([ReportID], [LocalIncidentNum], [version], [MTOReferenceNo], [Submitted]) 
SELECT @NewReportID, [LocalIncidentNum], 
       CONVERT(VARCHAR, (CONVERT(INT, [version]) + 1)), 
       [MTOReferenceNo], [Submitted] 
FROM [MVCOmar].[dbo].[PrideMVCCollisionBegin] 
WHERE [ReportID]=@ReportID;

SQL Server支持CAST或CONVERT

CAST(col1 as int)

CONVERT(int,col1)

暫無
暫無

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

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