En relación con el rendimiento de SQL.Cómo debo usar BIT en SQL Server 2005
Tengo una función de valor escalar para verificar alguna condición específica en la base, devuelve el valor BIT para verdadero o falso.
ahora no saben cómo debo llenar parámetro @BIT
Si escribo.
set @bit = convert(bit,1)
o
set @bit = 1
o
funciónset @bit='true'
funcionará de todos modos, pero no sé qué método se recomienda para el uso diario.
Otra pregunta, tengo una tabla en mi base con alrededor de 4 millones de registros, la inserción diaria es de unos 4K registros en esa tabla.
Ahora quiero añadir restricción sobre la mesa con la función de un valor escalar que ya he mencionado
Algo como esto
ALTER TABLE fin_stavke
ADD CONSTRAINT fin_stavke_knjizenje CHECK (dbo.fn_ado_chk_fin(id)=convert(bit,1))
donde "id" es la clave primaria de fin_stavke mesa y dbo.fn_ado_chk_fin parece
create FUNCTION fn_ado_chk_fin
(
@stavka_id int
)
RETURNS bit
AS
BEGIN
declare @bit bit
if exists (select * from fin_stavke where [email protected]_id and doc_id is null and protocol_id is null)
begin
set @bit=0
end
else
begin
set @bit=1
end
return @bit;
END
GO
Will este tipo y método de comprobación de restricciones afectarán gravemente el rendimiento en mi mesa y SQL en absoluto?
Si también hay una mejor manera de agregar control en esta tabla, por favor hágamelo saber.
Un bit se asigna como 0 o 1, por lo que si declara @bit como Bit, entonces debe usar set @bit = 1 o set @bit = 0, habría pensado. – Lazarus
A MSSQL no le importa la forma en que lo configure. puede establecerlo en 'verdadero, luego compararlo con 1 y SQL no le importará. – DForck42