Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Създайте изчислена колона, като използвате данни от друга таблица

Можете да създадете дефинирана от потребителя функция за това:

CREATE FUNCTION dbo.CountUses(@pictureId INT)
RETURNS INT
AS
  BEGIN
      RETURN
        (SELECT Count(id)
         FROM   PictureUse
         WHERE  PictureId = @PictureId)
  END 

След това изчислената колона може да бъде добавена по следния начин:

ALTER TABLE dbo.Picture
ADD NofUses AS dbo.CountUses(Id)

Въпреки това бих предпочел да направя изглед за това:

CREATE VIEW PictureView
AS
  SELECT Picture.Id,
         PictureName,
         Picture.CreateDate,
         Count(PictureUse.Id) NofUses
  FROM   Picture
         JOIN PictureUse
           ON Picture.Id = PictureUse.PictureId
  GROUP  BY Picture.Id,
            PictureName,
            Picture.CreateDate 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматизиране на тестовото възстановяване на базата данни в SQL Server

  2. SQL Server:Извличане на метаданни на таблица (описание, полета и техните типове данни)

  3. Използване на DMV (изглед за динамично управление) и DMF (функция за динамично управление) | Отстраняване на проблеми с производителността на SQL Server -4

  4. Актуализирайте SQL с последователно номериране

  5. Често срещани грешки в SQL сървъра