Вам придется преобразовать эту хранимую процедуру в пользовательскую функцию. Существуют различные типы UDF - один из которых - скалярный UDF - возвращает одно значение.
Так, например, вы можете создать такую функцию:
CREATE FUNCTION dbo.YourDefaultFunction(@Input1 INT, @Input2 VARCHAR(10))
RETURNS VARCHAR(100)
AS BEGIN
DECLARE @Result VARCHAR(100)
SET @Result = @Input2 + ' - giving: ' + CAST(@Input1 AS VARCHAR(5))
RETURN @Result
END
Конечно, ваш будет намного сложнее: -)
Как только вы это сделаете, вы можете определить это как значение по умолчанию для столбца типа VARCHAR (100) - либо непосредственно при объявлении таблицы, либо позже с помощью оператора ALTER TABLE
:
CREATE TABLE dbo.YourTable(.......
SomeColumn VARCHAR(100)
CONSTRAINT DF_YourTable_SomeColumn
DEFAULT (dbo.YourDefaultFunction(417, 'Test')),
.....)
или:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_YourTable_SomeColumn
DEFAULT (dbo.YourDefaultFunction(4711, 'Test2'))
FOR SomeColumn
К сожалению, вы не можете передавать другие столбцы в качестве параметров своей функции, когда определяете ее как значение по умолчанию для столбца.
Это помогает ??