小编Jos*_*gel的帖子

ALTER TABLE 语句与 CHECK 约束冲突

我想在两个数据库之间创建外键。碰巧这些表有数据,所以当我制作外关系时,出现了错误。

我发现当您的表有数据时会发生错误。那么如何不验证现有数据呢?

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)

sql database sql-server foreign-keys

3
推荐指数
1
解决办法
3269
查看次数

将 nvarchar 值转换为数据类型 int 时转换失败

我有两个返回数据的存储过程:

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。

sql sql-server stored-procedures

0
推荐指数
1
解决办法
3940
查看次数