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

#1 Alejandro Mesa
29/01/2008 - 02:22 | Informe spam
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
#2 Pedro Vidal
29/01/2008 - 02:51 | Informe spam
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
#3 Rubén Garrigós
29/01/2008 - 04:42 | Informe spam
Si quieres obtener los valores por defecto de todas las tablas de tu base de
datos puedes probar con algo como esto:

SELECT object_name(syscolumns.id) tabla,syscolumns.name columna,
syscomments.text [valor por defecto] FROM syscomments
JOIN syscolumns ON cdefault=syscomments.id
WHERE cdefault > 0


Rubén Garrigós
Solid Quality Mentors

"Pedro Vidal" wrote in message
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
#4 Jesús López
29/01/2008 - 10:32 | Informe spam
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
#5 Pedro Vidal
30/01/2008 - 05:55 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida