La Conversion de la valeur nvarchar '3001822585' a débordé une colonne int
Je utiliser à la suite de l'importation de fichiers Excel SQL Server.
Le fichier Excel dispose de toutes les valeurs de chaîne. Je suis en mesure d'importer le fichier, sauf Barcode
, SalePrice
et Price2
. J'obtiens l'erreur
Conversion de la valeur nvarchar '3001822585'(code à barres) a débordé une colonne int
Code:
SqlCommand sqlcmd = new SqlCommand
(@"MERGE Inventory AS target
USING (SELECT
LocalSKU, ItemName, QOH, Price, Discontinued,Barcode, Integer2
,Integer3, SalePrice, SaleOn, Price2 FROM @source)
AS Source ON (Source.LocalSKU = target.LocalSKU)
WHEN MATCHED THEN
UPDATE
SET ItemName = source.ItemName,
Price = source.Price,
Discontinued = source.Discontinued,
Barcode = source.Barcode,
Integer2 = source.Integer2,
Integer3 = source.QOH,
SalePrice = source.SalePrice,
SaleOn = source.SaleOn,
Price2 = source.Price2;", sqlconn);
SqlParameter param;
param = sqlcmd.Parameters.AddWithValue("@source", dr);
param.SqlDbType = SqlDbType.Structured;
param.TypeName = "dbo.InventoryType";
sqlconn.Open();
sqlcmd.ExecuteNonQuery();
sqlconn.Close();
Base de données::
LocalSKU varchar(200),
ItemName varchar(200),
QOH int,
Price decimal(19,4),
Discontinued bit,
Barcode int,
Integer2 int,
Integer3 int,
SalePrice decimal(19,4),
SaleOn bit,
Price2 decimal(19,4)
dbo.InventoryType
est:
CREATE TYPE [dbo].[InventoryType] AS TABLE
(
[LocalSKU] [varchar](200) NOT NULL,
[ItemName] [varchar](200) NULL,
[QOH] [int] NULL,
[Price] [decimal](19, 4) NULL,
[Discontinued] [bit] NULL,
[Barcode] [varchar](25) NULL,
[Integer2] [int] NULL,
[Integer3] [int] NULL,
[SalePrice] [decimal](19, 4) NULL,
[SaleOn] [bit] NULL,
[Price2] [decimal](19, 4) NULL
)
GO
Comment convertir le type de données dans la table d'une valeur de paramètre? Exemple seront appréciées.
OriginalL'auteur user2525244 | 2014-04-21
Vous devez vous connecter pour publier un commentaire.
Utilisation unsignedInt type de données.
De votre code-barres de la valeur 3001822585 dépasse max int valeur de 2 147 483 647 et donc déclenche une erreur
Modifier
unigned int
ne se trouvent pas dans SQL Server , cependant MySQL prend en charge.Pour SQL Server, vous devrez utiliser bigINT
Donc changer datattype de
Barcode
colonne de type bigInt . Si vous pensez que d'autres valeurs des colonnes peut dépasser int plage , puis de changer leur type de données.OriginalL'auteur Mudassir Hasan
Instruction SQl:
http://i.stack.imgur.com/ACKAW.jpg
Msg 248, Niveau 16, État 1, Ligne 1
La conversion de la valeur nvarchar '182512900911500120' a débordé une colonne int.
Le problème est causé en raison du nombre 182512900911500120 dépasse int gamme. Si nous convertir à bigint que cela fonctionne.
c'est à dire
http://i.stack.imgur.com/ZLSNR.jpg
Résultat
182512900911500121
OriginalL'auteur Samiran Nath