Traer un registro en blanco

28/01/2008 - 23:53 por Pedro Vidal | Informe spam
Como yo hago un query que me retorne un solo registro pero en blanco de una
tabla de sql server ? Obviamente con sus valores por defecto.


Gracias a todos por la ayuda


PV

Preguntas similare

Leer las respuestas

#6 Ricardo Passians
02/02/2008 - 05:08 | Informe spam
Aún en SQL 2000 lo podrías lograr armando un select dinámico basándote en
los registros de la tabla
INFORMATION_SCHEMA.COLUMNS, específicamente con la columna COLUMN_DEFAULT.

Yo hice un script parecido hace unos años. No lo tengo a mano ahora pero te
lo enviaré si lo consigo pronto.

Ricardo Passians



"Pedro Vidal" escribió en el mensaje
news:%
Gracias a todos, lo malo es que todavia uso la version 2K.

Pero ya vere que hago.


PV

"Jesús López" escribió en el
mensaje news:O$%23%
Esto podría funcionar si todos los campos que no admiten valores nulos
tienen un valor predeterminado y la tabla no tiene claves que lo impidan.

BEGIN TRANSACTION
INSERT INTO LaTabla
OUTPUT inserted.*
DEFAULT VALUES
ROLLBACK


"Pedro Vidal" escribió en el mensaje
news:%
Muchas gracias. pero hay como hacerlo sin enumerar las columnas?

Es que quiero generalizarlo para mandarlo llamar desde una aplicacion.


PV


"Alejandro Mesa" escribió en
el mensaje news:
Pedro Vidal,

En blanco o con valores por defecto?

Si estas usando SS 2005, toma ventaja de la nueva clusula OUTPUT en la
sentencia INSERT, en conjunto con el hecho de que las variables tipo
tabla no
participan en transacciones.

Ejemplo:

USE tempdb
GO

CREATE TABLE dbo.t1 (
c1 INT NOT NULL IDENTITY(1, 1),
c2 VARCHAR(25) NOT NULL DEFAULT ('Microsoft'),
c3 DATETIME NOT NULL DEFAULT(GETDATE()),
c4 NUMERIC(5, 2) NULL
)
GO

DECLARE @t TABLE (
c1 INT NOT NULL,
c2 VARCHAR(25) NOT NULL,
c3 DATETIME NOT NULL,
c4 NUMERIC(5, 2) NULL
)

BEGIN TRANSACTION

INSERT INTO dbo.t1
OUTPUT inserted.c1, inserted.c2, inserted.c3, inserted.c4 INTO @t(c1,
c2,
c3, c4)
DEFAULT VALUES

ROLLBACK TRANSACTION

SELECT * FROM @t
GO

DROP TABLE dbo.t1
GO


AMB

"Pedro Vidal" wrote:

Como yo hago un query que me retorne un solo registro pero en blanco
de una
tabla de sql server ? Obviamente con sus valores por defecto.


Gracias a todos por la ayuda


PV

















Respuesta Responder a este mensaje
#7 Pedro Vidal
02/02/2008 - 13:27 | Informe spam
Muchas gracias, te escribí a tu email para que me lo envies respondiendo el
email si consigues el codigo.

PV

"Ricardo Passians" escribió en el mensaje
news:
Aún en SQL 2000 lo podrías lograr armando un select dinámico basándote en
los registros de la tabla
INFORMATION_SCHEMA.COLUMNS, específicamente con la columna
COLUMN_DEFAULT.

Yo hice un script parecido hace unos años. No lo tengo a mano ahora pero
te lo enviaré si lo consigo pronto.

Ricardo Passians



"Pedro Vidal" escribió en el mensaje
news:%
Gracias a todos, lo malo es que todavia uso la version 2K.

Pero ya vere que hago.


PV

"Jesús López" escribió en el
mensaje news:O$%23%
Esto podría funcionar si todos los campos que no admiten valores nulos
tienen un valor predeterminado y la tabla no tiene claves que lo
impidan.

BEGIN TRANSACTION
INSERT INTO LaTabla
OUTPUT inserted.*
DEFAULT VALUES
ROLLBACK


"Pedro Vidal" escribió en el mensaje
news:%
Muchas gracias. pero hay como hacerlo sin enumerar las columnas?

Es que quiero generalizarlo para mandarlo llamar desde una aplicacion.


PV


"Alejandro Mesa" escribió en
el mensaje news:
Pedro Vidal,

En blanco o con valores por defecto?

Si estas usando SS 2005, toma ventaja de la nueva clusula OUTPUT en la
sentencia INSERT, en conjunto con el hecho de que las variables tipo
tabla no
participan en transacciones.

Ejemplo:

USE tempdb
GO

CREATE TABLE dbo.t1 (
c1 INT NOT NULL IDENTITY(1, 1),
c2 VARCHAR(25) NOT NULL DEFAULT ('Microsoft'),
c3 DATETIME NOT NULL DEFAULT(GETDATE()),
c4 NUMERIC(5, 2) NULL
)
GO

DECLARE @t TABLE (
c1 INT NOT NULL,
c2 VARCHAR(25) NOT NULL,
c3 DATETIME NOT NULL,
c4 NUMERIC(5, 2) NULL
)

BEGIN TRANSACTION

INSERT INTO dbo.t1
OUTPUT inserted.c1, inserted.c2, inserted.c3, inserted.c4 INTO @t(c1,
c2,
c3, c4)
DEFAULT VALUES

ROLLBACK TRANSACTION

SELECT * FROM @t
GO

DROP TABLE dbo.t1
GO


AMB

"Pedro Vidal" wrote:

Como yo hago un query que me retorne un solo registro pero en blanco
de una
tabla de sql server ? Obviamente con sus valores por defecto.


Gracias a todos por la ayuda


PV





















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