2016-04-16 9 views
2

Dies ist der FehlerGot Fehler beim Datensatz in einer Datenbank-Tabelle eingefügt

Zeichenfolge oder Binär-Daten abgeschnitten werden würde.

Die Daten für den Tabellenwert "@tblCustomers" stimmen nicht mit dem Tabellentyp des Parameters überein. SQL Server-Fehler ist:

Msg 8152, Stand: 10
Die Anweisung wurde beendet. Hier

ist der benutzerdefinierte Tabellentyp

CREATE TYPE [dbo].[recType] AS TABLE 
(
    [refid] [int] NULL, 
    [fromid] [varchar](13) NULL, 
    [toid] [varchar](13) NULL, 
    [message] [int] NULL, 
    [status] [varchar](13) NULL, 
) 

Hier wird die gespeicherte Prozedur

CREATE PROCEDURE [dbo].[SP_INSERT_RECVSMS] 
    @tblCustomers recType READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT INTO RecieveSMS(Refid, fromID, Toid, message, status) 
     SELECT 
      refid, fromid, toid, message, status 
     FROM @tblCustomers 
END 
+0

Haben Sie für diese Fehlermeldung gegoogelt? – FLICKER

+2

Randnotiz: Sie sollten ** nicht ** das Präfix 'sp_' für Ihre gespeicherten Prozeduren verwenden. Microsoft hat [dieses Präfix für seine eigene Verwendung reserviert (siehe * Gespeicherte Prozeduren benennen *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx), und Sie riskieren irgendwann in der Zukunft einen Namenskonflikt. [Es ist auch schlecht für die Leistung Ihrer gespeicherten Prozedur] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Es ist am besten, einfach 'sp_' zu vermeiden und etwas anderes als Präfix zu verwenden - oder gar kein Präfix! –

+0

Vielen Dank für die wertvollen Informationen Herr FLICKER – Abdu

Antwort

4

Fehlermeldung sehr klar. Die Ziel-/Quellentabellenspalte ist zu klein, um den Zeichenfolgenwert zu speichern.

Ändern der Größe für String-Spalten zu entsprechenden Werte:

[fromid] [varchar](13) NULL 
-- 
[fromid] [varchar](xxx) NULL,  
+0

Es zeigt immer noch den Fehler "Ungültiger Objektname 'RecieveSMS'." Ich benutze LINQPaD 4 .. wo ich den benutzerdefinierten Tabellentyp finden kann ....... ich habe gerade den Typ erstellt,. Es ist gelungen, aber ich konnte meinen benutzerdefinierten Tabellentyp in LINQPaD nicht finden ... bitte helfen Sie mir – Abdu

Verwandte Themen