sql >> Database >  >> RDS >> Sqlserver

Varbinaire gegevens invoegen in de SQL Server-database

Twee problemen:

Probleem #1 :gebruik geen TEXT meer - het is verouderd. Gebruik een VARCHAR(n) met een geschikte grootte van n , of als je echt moet (alleen als je ECHT moet), gebruik VARCHAR(MAX)

CREATE TABLE dbo.CONNECT_USER
(
    NUM_TRF int,
    NAME varchar(255),
    DESCRIPTION varchar(1000),
    REPORT varbinary(max)
)

Persoonlijk zou ik ook vermijden ALLES IN HOOFDLETTERS te schrijven - dit maakt het alleen zo veel moeilijker om te lezen! En ik zou proberen zeer algemeen te vermijden kolomnamen zoals Name of Description - deze zijn niet erg intuïtief en kunnen botsen met de kolommen van andere tabellen en/of met door SQL Server gereserveerde trefwoorden. Probeer expressiever . te gebruiken , meer contextgerelateerde kolomnamen die logisch zijn in uw omgeving (ConnectUsername of wat dan ook)

Probleem #2 :bij het doen van een INSERT , zou ik aanraden om altijd definieer de kolom waarin u wilt invoegen. Dit voorkomt onaangename verrassingen wanneer een tabel wordt geherstructureerd of nieuwe kolommen worden toegevoegd:

INSERT INTO [MY_DB_APP].[dbo].[CONNECT_USER](NUM_TRF, NAME, DESCRIPTION, REPORT)
VALUES(1, 'name', 'description', CAST('wahid' AS VARBINARY(MAX)))
GO



  1. MySQL - Groepeer en totaal, maar retourneer alle rijen in elke groep

  2. SQL-query met CASE en groeperen op

  3. Hoe kan ik de stringwaarde van het datatype van Oracle bepalen aan de hand van de code?

  4. Opgeslagen procedure oproepen met VBA