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。
我目前暂时无法做到这两种选择,因为我现在的优先级不同,我的时间有限,代码很老,很多人写的编码习惯很差。
答案 0 :(得分:4)
你不需要转换它,运行它,会有一个隐式转换
SELECT '1' + 1
返回2
在您的情况下,您可以[version] + 1
答案 1 :(得分:2)
您可以使用the CONVERT function
在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;
答案 2 :(得分:1)
SQL Server支持CAST或CONVERT
CAST(col1 as int)
CONVERT(int,col1)