SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: cam46 en Domingo 19 de Octubre de 2014, 00:25

Título: falla en código para crear un procedimiento falla SQL2012 ¿solución?
Publicado por: cam46 en Domingo 19 de Octubre de 2014, 00:25
Buenas Tardes, mi nombre es Cristian, tengo el siguiente problema:


En una base de datos para un juego mmorgp, cuando ejecuto un código para crear un procedimiento para el registro web, este mismo falla y me devuelve el siguiente mensaje:

Código: [Seleccionar]
Mens 213, Nivel 16, Estado 1, Procedimiento Website_Register_Create_Account, Línea 11
El nombre de columna o los valores especificados no corresponden a la definición de la tabla.


Revise el nombre de tabla y de columnas y están bien, revise los valores, y al ser los valores de una versión anterior los modifique y el mensaje sigue siendo el mismo.


Este es el código del Procedimiento:
Código: [Seleccionar]
USE [XW_db_account]
GO

/****** Object:  StoredProcedure [dbo].[Website_Register_Create_Account]    Script Date: 09/03/2013 13:21:35 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[Website_Register_Create_Account]
@i_AccountName VARCHAR(20),
@i_Password VARCHAR(32),
@i_Sex TINYINT,
@i_BirthYear INT,
@i_Email VARCHAR(40)
AS

INSERT INTO [XW_db_account].[dbo].[td_Account] VALUES (@i_AccountName ,@i_Password ,0 ,@i_Sex ,@i_BirthYear,GetDate(),GetDate(),0,0,0,0,0, GetDate(),NULL, NULL,0,NULL,@i_Email,NULL,0,NULL,NULL)

SELECT 1 AS [RETURN]
RETURN



GO


y este el diseño de la tabla:
Código: [Seleccionar]
AccountUniqueNumber int Unchecked
AccountName varchar(25) Unchecked
Password varchar(35) Checked
AccountType smallint Unchecked
Sex tinyint Checked
BirthYear int Checked
RegisteredDate datetime Checked
LastLoginDate datetime Checked
IsBlocked tinyint Checked
ChattingBlocked tinyint Checked
MGameEventType int Checked
ConnectingServerGroupID int Checked
GameContinueTimeInSecondOfToday int Checked
LastGameEndDate datetime Checked
JuminNumber varchar(20) Checked
SecondaryPassword varchar(35) Checked
userfrom int Checked
Password_new nvarchar(35) Checked
Email nvarchar(50) Checked
Introducer int Checked
CashPoints int Checked
Password2 varbinary(50) Checked
Capcha nchar(6) Checked
Unchecked

Voy a estar muy agradecido si pueden ayudarme con esto, muchas gracias.



EDITO

Resulta que agregando la "value" del acountuniquenumber el registro se completa, pero esa accountuniquenomber es como su nombre lo dice, un numero unico, en ese caso, que utilizo para que se vallan sumando de a uno?
Título: Re:falla en código para crear un procedimiento falla SQL2012 ¿solución?
Publicado por: F_Tanori en Domingo 19 de Octubre de 2014, 18:44
Hola.

Puedes hacer la columna AutoIncrement/Identity

http://www.sqlserverya.com.ar/temarios/descripcion.php?cod=19&punto=13
http://www.w3schools.com/sql/sql_autoincrement.asp

Saludos
Título: Re:falla en código para crear un procedimiento falla SQL2012 ¿solución?
Publicado por: DiabloRojo en Miércoles 22 de Octubre de 2014, 02:34
Que tal cam46?

Si no recuerdo mal cuando vas a ingresar datos en una tabla y no indicas los campos que van a adquirir valores es obligatorio que tu consulta de inserción tenga despues del "values" la misma cantidad de valores y tipo de datos (en estricto orden) que los definidos en tu tabla.

Un ejemplo: tienes la tabla tabla1 con los campos id, nombre, fecha

entonces puedes hacer

Código: [Seleccionar]
insert into tabla1 values (1, cam46, '2014-10-21') --> no menciono los campos pero inserto estricto numero de campos y estricto orden de tipo de datos

supon que solo quieres añadir la fecha

Código: [Seleccionar]
insert into tabla1 (fecha) values ('2014-10-21') --> ingreso campos en cualquier orden debo indicar que se corresponde con que...

Saludos