[英]CONCAT in SQL Server 2014
我想在存儲過程中使用CONCAT
時遇到問題。 我按執行並得到此錯誤信息:
男子195,尼維爾15,埃斯塔多10,Procedimiento upd_agregar,利內尼亞96'
CONCAT'不是公認的內置函數名稱。
這是我的桌子:
create table sucursales
(
idSucursal nvarchar(5) primary key,
idEmpresa int not null,
sucursal nvarchar(25) not null,
direccion nvarchar(100) not null,
telefono nvarchar(25),
email nvarchar(25) not null,
constraint fk_suc_emp foreign key(idEmpresa)
references empresas(idEmpresa)
)
這是我的查詢:
create procedure upd_agregar
(@idEmpresa int,
@sucursal nvarchar(25),
@direccion nvarchar(100),
@telefono nvarchar (25),
@email nvarchar(25))
as
declare @longitud int, @codEmpresa nvarchar(2),@codSucursal nvarchar (2)
--Generar codigo de empresa
IF len(@idEmpresa) < 2
SET @codEmpresa = CONCAT ('0',@idEmpresa)
ELSE
SET @codEmpresa = @idEmpresa
GO
然后當我要進行這樣的選擇時,我收到一個錯誤,我必須聲明一個標量變量@codSucursal:
SELECT @codSucursal = isnull(max(cast(substring (idSucursal,4,2)AS int)),0) + 1 FROM sucursales
WHERE idEmpresa = @idEmpresa
CONCAT
是在SQL Server 2012中添加的。檢查服務器的版本,也許您未按照預期使用2014:
SELECT @@VERSION
此外,您實際上並不需要CONCAT
,也不需要檢查LEN
即可將整數轉換為帶前導零的字符串:
SET @codEmpresa = RIGHT('00' + CAST(@idEmpresa as nvarchar(2)), 2)
嘗試這個:
create procedure upd_agregar
(@idEmpresa int, @sucursal nvarchar(25),@direccion nvarchar(100),@telefono nvarchar (25),@email nvarchar(25))
as
declare @longitud int, @codEmpresa nvarchar(2),@codSucursal nvarchar (2)
--Generar codigo de empresa
IF len(CAST(@idEmpresa AS NVARCHAR(2))) < 2
SET @codEmpresa = CONCAT ('0', CAST(@idEmpresa AS NVARCHAR(2)))
ELSE
SET @codEmpresa = @idEmpresa
PRINT @codEmpresa
GO
-- EXEC upd_agregar 1, 'B', 'C', 'D', 'E'
-- Result: 01
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.