Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 接收变量的数据类型varchar不等于列的数据类型nvarchar_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 接收变量的数据类型varchar不等于列的数据类型nvarchar

Sql 接收变量的数据类型varchar不等于列的数据类型nvarchar,sql,sql-server,tsql,Sql,Sql Server,Tsql,我收到了一条关于这个的错误消息。错误消息是: 接收变量的数据类型varchar不等于数据类型 “VEHICLE_ID2_FW”列的nvarchar 请帮忙,谢谢 DECLARE @IMPORTID INT DECLARE @LASTID INT DECLARE @VEHICLEID VARCHAR (20) SELECT @LASTID = (SELECT LAST_REFERENCE_FW FROM REFERENCE_FW WHERE RECORD_TYPE_FW = 'VEHICLES_

我收到了一条关于这个的错误消息。错误消息是:

接收变量的数据类型varchar不等于数据类型 “VEHICLE_ID2_FW”列的nvarchar

请帮忙,谢谢

DECLARE @IMPORTID INT
DECLARE @LASTID INT
DECLARE @VEHICLEID VARCHAR (20)

SELECT @LASTID = (SELECT LAST_REFERENCE_FW FROM REFERENCE_FW WHERE RECORD_TYPE_FW = 'VEHICLES_ORDERS_FW' AND REFERENCE_FIELD_FW = 'VEHICLE_ID2_FW' AND ARCHIVE_STATUS_FW ='N')
SELECT @IMPORTID = (SELECT IMPORT_ID_FW FROM VEHICLES_ORDERS_FW WHERE RECORD_NUMBER_FW = %RECORD_NUMBER_FW%)
SELECT @VEHICLEID = (SELECT VEHICLE_ID2_FW FROM VEHICLES_ORDERS_FW WHERE RECORD_NUMBER_FW = %RECORD_NUMBER_FW%)

IF @IMPORTID IS NOT NULL AND @VEHICLEID IS NULL

BEGIN
UPDATE VEHICLES_ORDERS_FW
SET @LASTID = VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = @LASTID+1
FROM VEHICLES_ORDERS_FW
WHERE RECORD_NUMBER_FW = %RECORD_NUMBER_FW%;

UPDATE VEHICLES_ORDERS_FW
SET VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = 'FW'+VEHICLE_ID2_FW
FROM VEHICLES_ORDERS_FW
WHERE RECORD_NUMBER_FW = %RECORD_NUMBER_FW%

END

Mabey问题是:

set @LASTID = VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = @LASTID + 1

如果您提供表结构,这将很好。

Mabey问题在于:

set @LASTID = VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = @LASTID + 1

如果您提供表结构,这将很好。

如果您不想更改表数据类型。如果不想更改表数据类型,可以使用
cast
CONVERT

键入cast列。您可以使用
cast
CONVERT

尝试使用下面的脚本更改脚本

DECLARE @IMPORTID INT
DECLARE @LASTID INT
DECLARE @VEHICLEID VARCHAR (20)

SELECT @LASTID = (SELECT LAST_REFERENCE_FW FROM REFERENCE_FW WHERE RECORD_TYPE_FW like N'VEHICLES_ORDERS_FW' AND REFERENCE_FIELD_FW LIKE N'VEHICLE_ID2_FW' AND ARCHIVE_STATUS_FW  LIKE N'N')

SELECT @IMPORTID = (SELECT IMPORT_ID_FW FROM VEHICLES_ORDERS_FW WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%'))

SELECT @VEHICLEID = (SELECT VEHICLE_ID2_FW FROM VEHICLES_ORDERS_FW WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR)  = CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%'))

IF @IMPORTID IS NOT NULL AND @VEHICLEID IS NULL

BEGIN
UPDATE VEHICLES_ORDERS_FW
SET @LASTID = @LASTID+1
FROM VEHICLES_ORDERS_FW
WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%');

UPDATE VEHICLES_ORDERS_FW
SET VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = CONCAT(N'FW',VEHICLE_ID2_FW)
FROM VEHICLES_ORDERS_FW
WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%');

尝试使用下面的脚本更改脚本

DECLARE @IMPORTID INT
DECLARE @LASTID INT
DECLARE @VEHICLEID VARCHAR (20)

SELECT @LASTID = (SELECT LAST_REFERENCE_FW FROM REFERENCE_FW WHERE RECORD_TYPE_FW like N'VEHICLES_ORDERS_FW' AND REFERENCE_FIELD_FW LIKE N'VEHICLE_ID2_FW' AND ARCHIVE_STATUS_FW  LIKE N'N')

SELECT @IMPORTID = (SELECT IMPORT_ID_FW FROM VEHICLES_ORDERS_FW WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%'))

SELECT @VEHICLEID = (SELECT VEHICLE_ID2_FW FROM VEHICLES_ORDERS_FW WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR)  = CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%'))

IF @IMPORTID IS NOT NULL AND @VEHICLEID IS NULL

BEGIN
UPDATE VEHICLES_ORDERS_FW
SET @LASTID = @LASTID+1
FROM VEHICLES_ORDERS_FW
WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%');

UPDATE VEHICLES_ORDERS_FW
SET VEHICLES_ORDERS_FW.VEHICLE_ID2_FW = CONCAT(N'FW',VEHICLE_ID2_FW)
FROM VEHICLES_ORDERS_FW
WHERE CAST(RECORD_NUMBER_FW  AS NVARCHAR) LIKE CONCAT(N'%', CAST(RECORD_NUMBER_FW AS NVARCHAR),N'%');

仍然有错误消息“接收变量的ata类型int不等于‘VEHICLE_ID2_FW’列的数据类型nvarchar”。“VEHICLE_ID2_FW=VARCHAR(20)LAST_REFERENCE_FW=integers直到有错误消息“接收变量的ata类型int不等于‘VEHICLE_ID2_FW’列的数据类型nvarchar”。“VEHICLE_ID2_FW=VARCHAR(20)LAST_REFERENCE_FW=integerThank它确实有效,我刚刚删除了concat记录编号,因为它是系统中仅发生在该特定记录上的固定编号。@user3585538+1,供您根据需要修改解决方案!感谢它确实有效,我刚刚删除了concat记录编号,因为它是系统中仅在该特定记录上发生的固定编号。@user3585538+1,供您根据需要修改解决方案!如果你需要做CAST/转换,花几秒钟考虑你的DB设计。(通常表示坏的设计)如果你需要做CAST /转换,花几秒钟考虑你的DB设计。(通常表示设计不好。)