Función como valor por defecto de una columna.

07/01/2008 - 13:27 por José Luis | Informe spam
Hola a todos,

quiero dar como valor por defecto a un campo de una tabla el resultado de
una función, pero no encuentro la manera de hacerlo.

¿Alguién sabe si esto se puede hacer en SQL Server 2005? ¿Y si se puede como
podría hacerlo?

Muchas gracias por anticipado.

Un saludo,
José Luis.

Preguntas similare

Leer las respuestas

#1 José Luis
07/01/2008 - 16:27 | Informe spam
Buenas Maxi,

muchas gracias por contestar a mi pregunta.

El ejemplo que me has puesto esta muy claro. Sólo una pregunta, el código
que tengo que ejecutar esta en un procedimiento almacenado. Puedo usar ese
procedimiento almacenado como valor por defecto (como en el ejemplo que me
mandas) o tengo que recoger el valor del procedimiento almacenado en una
función para luego pasarlo como valor por defecto como en el ejemplo.

Muchas gracias de nuevo por tu ayuda.

Un saludo,
José Luis.

"Maxi" wrote:

Hola Jose Luis, te paso un ejemplo simple:

use adventureworks

go

CREATE FUNCTION dbo.demo1 (@i int)

RETURNS int

WITH EXECUTE AS CALLER

AS

BEGIN

return(@i + 50)

end

go



create table test1

(id int,num int default(dbo.demo1(0)))

go

insert into test1 values (1,2)

insert into test1 (id) values (2)

select * from test1



-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"José Luis" escribió en el mensaje
news:
> Hola a todos,
>
> quiero dar como valor por defecto a un campo de una tabla el resultado de
> una función, pero no encuentro la manera de hacerlo.
>
> ¿Alguién sabe si esto se puede hacer en SQL Server 2005? ¿Y si se puede
> como
> podría hacerlo?
>
> Muchas gracias por anticipado.
>
> Un saludo,
> José Luis.



Respuesta Responder a este mensaje
#2 Maxi
07/01/2008 - 17:14 | Informe spam
Hola Jose Luis, te paso un ejemplo simple:

use adventureworks

go

CREATE FUNCTION dbo.demo1 (@i int)

RETURNS int

WITH EXECUTE AS CALLER

AS

BEGIN

return(@i + 50)

end

go



create table test1

(id int,num int default(dbo.demo1(0)))

go

insert into test1 values (1,2)

insert into test1 (id) values (2)

select * from test1



-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"José Luis" escribió en el mensaje
news:
Hola a todos,

quiero dar como valor por defecto a un campo de una tabla el resultado de
una función, pero no encuentro la manera de hacerlo.

¿Alguién sabe si esto se puede hacer en SQL Server 2005? ¿Y si se puede
como
podría hacerlo?

Muchas gracias por anticipado.

Un saludo,
José Luis.
Respuesta Responder a este mensaje
#3 José Luis
07/01/2008 - 17:41 | Informe spam
Me lo temía. Muchas gracias por la información deberé buscar otro camino pero
por lo menos me has aclarado que este no es.

De nuevo muchas gracias por todo.

Un saludo,
José Luis.

"Maxi" wrote:

Jose, no se admiten procedimientos almacenados para los valores default,
usted debe hacerlo con una funcion o bien escribiendo el valor directamente!


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"José Luis" escribió en el mensaje
news:
>
> Buenas Maxi,
>
> muchas gracias por contestar a mi pregunta.
>
> El ejemplo que me has puesto esta muy claro. Sólo una pregunta, el código
> que tengo que ejecutar esta en un procedimiento almacenado. Puedo usar ese
> procedimiento almacenado como valor por defecto (como en el ejemplo que me
> mandas) o tengo que recoger el valor del procedimiento almacenado en una
> función para luego pasarlo como valor por defecto como en el ejemplo.
>
> Muchas gracias de nuevo por tu ayuda.
>
> Un saludo,
> José Luis.
>
> "Maxi" wrote:
>
>> Hola Jose Luis, te paso un ejemplo simple:
>>
>> use adventureworks
>>
>> go
>>
>> CREATE FUNCTION dbo.demo1 (@i int)
>>
>> RETURNS int
>>
>> WITH EXECUTE AS CALLER
>>
>> AS
>>
>> BEGIN
>>
>> return(@i + 50)
>>
>> end
>>
>> go
>>
>>
>>
>> create table test1
>>
>> (id int,num int default(dbo.demo1(0)))
>>
>> go
>>
>> insert into test1 values (1,2)
>>
>> insert into test1 (id) values (2)
>>
>> select * from test1
>>
>>
>>
>> -
>> Microsoft M.V.P en SQLServer
>> SQLTotal Consulting - Servicios en SQLServer
>> Email:
>> "José Luis" escribió en el mensaje
>> news:
>> > Hola a todos,
>> >
>> > quiero dar como valor por defecto a un campo de una tabla el resultado
>> > de
>> > una función, pero no encuentro la manera de hacerlo.
>> >
>> > ¿Alguién sabe si esto se puede hacer en SQL Server 2005? ¿Y si se puede
>> > como
>> > podría hacerlo?
>> >
>> > Muchas gracias por anticipado.
>> >
>> > Un saludo,
>> > José Luis.
>>
>>
>>



Respuesta Responder a este mensaje
#4 Maxi
07/01/2008 - 18:32 | Informe spam
Jose, no se admiten procedimientos almacenados para los valores default,
usted debe hacerlo con una funcion o bien escribiendo el valor directamente!


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"José Luis" escribió en el mensaje
news:

Buenas Maxi,

muchas gracias por contestar a mi pregunta.

El ejemplo que me has puesto esta muy claro. Sólo una pregunta, el código
que tengo que ejecutar esta en un procedimiento almacenado. Puedo usar ese
procedimiento almacenado como valor por defecto (como en el ejemplo que me
mandas) o tengo que recoger el valor del procedimiento almacenado en una
función para luego pasarlo como valor por defecto como en el ejemplo.

Muchas gracias de nuevo por tu ayuda.

Un saludo,
José Luis.

"Maxi" wrote:

Hola Jose Luis, te paso un ejemplo simple:

use adventureworks

go

CREATE FUNCTION dbo.demo1 (@i int)

RETURNS int

WITH EXECUTE AS CALLER

AS

BEGIN

return(@i + 50)

end

go



create table test1

(id int,num int default(dbo.demo1(0)))

go

insert into test1 values (1,2)

insert into test1 (id) values (2)

select * from test1



-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"José Luis" escribió en el mensaje
news:
> Hola a todos,
>
> quiero dar como valor por defecto a un campo de una tabla el resultado
> de
> una función, pero no encuentro la manera de hacerlo.
>
> ¿Alguién sabe si esto se puede hacer en SQL Server 2005? ¿Y si se puede
> como
> podría hacerlo?
>
> Muchas gracias por anticipado.
>
> Un saludo,
> José Luis.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida