我想在两个数据库之间创建外键。碰巧这些表有数据,所以当我制作外关系时,出现了错误。
我发现当您的表有数据时会发生错误。那么如何不验证现有数据呢?
ALTER TABLE [contrato_sigob].[relacion_institucion_categoria]
ADD CONSTRAINT CHECK_CATEGORIA
CHECK([dbo].[func_CHECK_CATEGORIA](id_categoria)=1);
Run Code Online (Sandbox Code Playgroud)
错误说:
The ALTER TABLE statement conflicted with the CHECK constraint "CHECK_CATEGORIA". The conflict occurred in database "SIGOB_Contraloria", table "contrato_sigob.relacion_institucion_categoria", column 'id_categoria'.
Run Code Online (Sandbox Code Playgroud) 我有两个返回数据的存储过程:
ALTER proc [dbo].[spBuscarUrl]
@CodigoContrato nvarchar(255),
@url nvarchar(255) OUTPUT
AS
SET NOCOUNT ON;
SELECT @url = url
FROM v_compras_y_contrataciones AS cc
WHERE CodigoContrato = @CodigoContrato;
RETURN
Run Code Online (Sandbox Code Playgroud)
当我尝试返回第二个存储过程的值时,错误显示:
ALTER procedure [dbo].[spCaller]
AS BEGIN
DECLARE @URL nvarchar(255);
EXECUTE spBuscarUrl
'MIREX-2017-00001', @url = @URL OUTPUT;
RETURN convert(nvarchar(255),@URL);
END
Run Code Online (Sandbox Code Playgroud)
消息 245,级别 16,状态 1,过程 spCaller,第 6 行 转换 nvarchar 值时转换失败 ' https://comunidad.comprasdominicana.gob.do//Public/Tendering/OpportunityDetail/Index?noticeUID=DO1.NTC.2 ' 转换为数据类型 int。