Ich versuche, die große Anzahl von id'd zu verketten und den Status aller IDs zu aktualisieren.Wie Sie mehr als 8000 Zeichen speichern und große verkettete Zeichenfolge in SQL Server 2008 zuweisen?
Zum Beispiel:
aclid in (4604019,4604018,4604017,4604016,4604015,4604014,4604013,4604012,4604011,4604010,4604009,4604008,4604007,4604006,4604005,4604004,4604003,4604002,4604001,4604000,4603999,4603998,4603997,4603996,4603995,4603994,4603993,4603992,4603991,4603990,4603989,4603988)`
Bitte meine gespeicherten Prozedur überprüfen:
ALTER PROCEDURE [dbo].[VT_ACLReportChangeStatus]
(@ChangeStatus nvarchar(50) = null,
@ACLId nvarchar(max))
AS
/* Exec VT_ACLReportChangeStatus 'Complete','4599473,4599472,4599471,4599469,4599468' */
BEGIN
UPDATE VT_ACLReport
SET Status = @ChangeStatus
WHERE ACLId IN (SELECT * FROM SplitDelimiterString(@ACLId,','))
END
Bitte meinen Code hinter überprüfen:
ACLId = ACLId.ToString().Trim(',');
using (SqlConnection con = new SqlConnection(cs))
{
cmd = new SqlCommand("VT_ACLReportChangeStatus", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandTimeout = 3600;
cmd.Parameters.Add(new SqlParameter("@ACLId", SqlDbType.NVarChar,-1));
cmd.Parameters.Add(new SqlParameter("@ChangeStatus", SqlDbType.NVarChar, 50));
cmd.Parameters["@ACLId"].Value = ACLId;
cmd.Parameters["@ChangeStatus"].Value = ddlChangeStatus.SelectedItem.Text.ToString();
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
AclId
Spaltendatentyp bigint identity
ist.
Bitte helfen Sie mir bei der Verkettung großer Strings und um alle Zeilen zu aktualisieren, deren aclid vorhanden ist.
In der unmittelbaren, ist Ihr Problem höchstwahrscheinlich mit, wie Ihre String-Split-Funktion funktioniert. In einem breiteren Sinne ist Ihr Problem jedoch, dass Sie alle Ihre IDs miteinander verketten? Warum tust du das und hältst sie nicht nur in einer Tabelle, der du beitreten kannst? – iamdave
Gemäß meiner Anforderung muss ich den Status ausgewählter IDs in derselben Tabelle aktualisieren. Also habe ich alle ausgewählten IDs verkettet und dann versucht, die Zeilen auf einmal zu aktualisieren. aber das Problem kommt, wenn die mehr als 8000 Zeichen, es nicht mehr als 8000 Zeichen in der gespeicherten Prozedur dauert. – AkshayPorwal
* Also habe ich alle ausgewählten IDs verkettet * .... warum? Es besteht keine Notwendigkeit, dies zu tun. – iamdave