Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DanteInfernum

#51
Sí, está bien. Tendría que haber aclarado que estoy usando SQL Server 2005. Por lo que he leído esta versión no admite los bloques TRY y CATCH.
#52
Quiero crear un procedimiento que en caso de error me retorne el número del error.
Tengo el siguiente código:

Código (sql) [Seleccionar]
CREATE PROCEDURE proc4
@idSeccion nchar(3),
@descripcion varchar(20)
AS
BEGIN
INSERT INTO Secciones
VALUES(@idSeccion, @descripcion)
IF @@ERROR <> 0
BEGIN
RETURN @@ERROR
END
ELSE
BEGIN
RETURN 1
END
END


Pero, a pesar de producirse el error, siempre me devuelve 0.
¿Cuál sería la forma correcta de conseguir esto? ¿Qué estoy haciendo mal?
#53
Sí, yo recomiendo el TELL ME MORE también. Cuando lo empezé a usar sabía poco y nada de inglés y la verdad que me ayudó mucho. Además de que me resulta mucho más entretenido que el ROSETTA STONE, este te repite las palabras una y otra vez hasta el cansancio. Talvez esté bueno para aprender un idioma del que no tengas ni la menor idea de cómo es, como podría ser el chino por ejemplo.
#54
¿La cláusula USING es propia de MySQL, no? Lo que pasa que yo estoy usando SQL Server. Igual está bueno el dato; me sirve a futuro.
#55
Bases de Datos / Re: T-SQL ¿Cuándo debo usar GO?
19 Septiembre 2013, 18:54 PM
Voy agregando lo que vaya encontrando. Talvez le sirva a alguien más.


"La instrucción CREATE PROCEDURE no se puede combinar con otras instrucciones Transact-SQL en un único lote."

O sea, si el procedimiento que estoy creando no encabeza el script, debe de ser precedido por un GO, de modo tal que el procedimiento se enviará al servidor en un lote destinado exclusivamente para esto.

--------------------

Edito:

"Las instrucciones CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER y CREATE VIEW no pueden combinarse con otras instrucciones de un lote. El lote debe empezar con una instrucción CREATE. Las siguientes instrucciones del lote se interpretarán como parte de la definición de la primera instrucción CREATE."

Moraleja: cada vez que se use un CREATE algo, hay que poner un GO antes.
#56
Foro Libre / Re: ¿Por qué siempre borracho?
17 Septiembre 2013, 20:00 PM
Cita de: TheEGG 89 en 14 Septiembre 2013, 07:21 AM
No entiendo porque siempre tengo que estar borracho para ser Felíz

Mi opinión: La felicidad está sólo en la cabeza de uno. Probablemente cuando tomas no piensas tanto. Yo creo que la felicidad es inversamente proporcional a la razón. Cuanto menos pienses, y más te parezcas a un animal que únicamente actua por impulsos, más feliz serás. Las personas más felices suelen ser las que no tienen la más mínima idea de nada, viven el presente y nada más les importa.

¿La solución? Y yo que sé, dejá de pensar... Uno es infeliz por no estar satisfecho con lo que se tiene (y con tener no me refiero exclusivamente a cosas materiales, sino todo lo contrario). El alcohol es muy mal consejero, y te va a terminar liquidando a la larga.

¡Hacete budista, aniquilá todo posible deseo que tengas, y sé feliz con tu nueva vida toda "zen"!
#57
Bases de Datos / T-SQL ¿Cuándo debo usar GO?
17 Septiembre 2013, 19:42 PM
Tengo el siguiente script de ejemplo para crear una base de datos:


Código (sql) [Seleccionar]
use master
go
create database Prueba
go
use Prueba
go
Create table Empleados(A, B, C)
go
Create table Secciones(D, E, F)
go
insert into Empleados values('Ana', 'Sosa', 'Yi 1111')
insert into Empleados values('Eva', 'Rocha')
go
insert into Secciones values('Cre', 'Credito')
        insert into Secciones values('Ger', 'Gerencia')



Mis preguntas: ¿Es absolutamente necesario usar el GO cada vez que creo algo? Porque he visto que perfectamente puedo omitir algunos y el script se sigue ejecutando tal cual lo hacía antes. ¿Es una buena práctica usar tantos GO cómo sea posible?
#58
Mmm... Ok, pero de esa forma estoy detallando explícitamente las columnas de la tabla Trabajan que quiero que aparezcan, que es justo lo que quería evitar.

Pero sí, parece que no hay otra forma. O indicas todas las columnas que quieras mostrar una por una, o las seleccionas TODAS con *. No existe algo así como:

Código (sql) [Seleccionar]

Select * except(columnaX)


Talvez se pueda solucionar esto creando un procedimiento que te busque una determinada columna y la elimine, pero recién estoy empezando con el tema de los scripts en SQL y no lo tengo muy claro aún todo este asunto.


Muchas gracias por las respuestas!

Saludos.
#59
Después de hacer un inner join entre las tablas Empleados y Trabajan, muestro todos los campos, y me queda algo así:


IdEmp   Nombre   Apellido   Direccion   IdEmp   IdCargo  IdSeccion


IdEmp pertenece a la tabla Empleados y también a la tabla Trabajan. Por eso se muestra dos veces. Y lo que quería saber es si existe alguna forma de mostrar la columna IdEmp una sola vez.

El Group By tengo entendido que sólo sirve cuando tengo funciones de agregación como lo son SUM(), COUNT(), etc. Pero no sé, capaz que sirve para más cosas también...
#60
El asunto es así:

Tengo 2 tablas, Empleados y Trabajan. La columna IdEmp es clave primaria de Empleados y a su vez clave foránea de Trabajan. Quiero componer las dos tablas mediante un inner join y mostrar todos los datos resultantes.

Tengo la siguiente consulta en SQL:

select *
from empleados inner join trabajan
on empleados.idemp = trabajan.idemp


La cuestión es que IdEmp pertenece a las 2 tablas, por lo que al mostrar todos los datos esta columna se repite. Me gustaría saber qué puedo hacer para evitar esto (sin tener que seleccionar las columnas que quiero mostrar una por una).