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

Как да посоча изчислени колони в таблица, които са базирани на друга колона в SQL Server?

Да, вие бихте създали дефинирана от потребителя функция, за да извършите изчислението и да използвате тази дефинирана от потребителя функция в израза на колона Изчислено.

Един работещ пример би бил нещо като.....

CREATE TABLE TABLE1 (ID INT, VALUE INT)
GO
INSERT INTO TABLE1 VALUES (1 , 10), (2 , 20) , (3 , 30)
GO

CREATE FUNCTION dbo.udf_DefaultValue(@ID INT)
RETURNS INT
AS
BEGIN
    DECLARE @rtnValue INT;
    SELECT @rtnValue = VALUE *2 FROM TABLE1 WHERE ID = @ID
    RETURN @rtnValue;
END
GO

CREATE TABLE TABLE2 (ID INT
                  , VALUE INT
                  , ComputedColumn AS (VALUE * dbo.udf_DefaultValue(ID)) )
GO

INSERT INTO TABLE2 (ID , VALUE)
VALUES (1, 1)

SELECT * FROM TABLE2

/*****  Result Set  *****/

ID  VALUE   ComputedColumn
1     1           20


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ескейпиране на командни параметри, предадени на xp_cmdshell към dtexec

  2. Мога ли да оптимизирам заявка SELECT DISTINCT x FROM hugeTable, като създам индекс на колона x?

  3. Начин за вмъкване на текст с ' (апостроф) в SQL таблица

  4. Значение на първичен ключ към Microsoft SQL Server 2008

  5. Шестнадесетичната стойност 0x00 е невалиден знак