| 

.NET C# Java Javascript Exception

1
Hallo,

uns ist etwas seltsames bei MSSQL 2008 Express aufgefallen. Ich erstelle per SQL eine Stored Proc (Reihenfolge ist etwas wild um den Effekt zu veranschaulichen):
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[gpsp_set_routing]
@routing_id VARCHAR(50),
@created_by varchar(MAX) = NULL,
@info3 varchar(MAX),
@name varchar(MAX),
@allow_overlap int,
@bom_id varchar(50),
@locked int,
@created_on datetime = NULL,
@info1 varchar(MAX),
@info2 varchar(MAX),
@client_id int = 0,
@master_routing_id varchar(50)
AS
BEGIN
...


Wenn ich im MSSQL Management Studio dann auf Alter Stored Procedure gehe, kommt aber:

ALTER PROCEDURE [dbo].[gpsp_set_routing]
@routing_id VARCHAR(50),
@name VARCHAR(MAX),
@locked int,
@allow_overlap int,
@info1 varchar(MAX),
@info2 varchar(MAX),
@info3 varchar(MAX),
@bom_id varchar(50),
@master_routing_id varchar(50),
@created_on datetime = NULL,
@created_by varchar(50) = NULL,
@client_id int = 0
AS
BEGIN
...


Die Reihenfolge ist anders, was natürlich für den Aufruf der Prozedur einen großen Unterschied macht.

Kann mir das jemand erklären? Und wie kann ich das beeinflussen?

Grüße
Barados
20.08.2013
Barados 288 1 7
Eine Erklärung habe ich noch nicht, aber zumindest fällt mir auf, dass die "Umordnung" sich anscheinend an den Typen der Parameter orientiert und dabei sogar VARCHAR und varchar unterscheidet.
Matthias Hlawatsch 20.08.2013
Dann erscheint es mir aber willkürlich dass er VARCHAR(50) VARCHAR(MAX) ... varchar(MAX) varchar(50) sortiert^^
Barados 20.08.2013
Welche Version vom MSSQL Management Studio und SQL-Server verwendest du, sowie welchen Patchstand?
Floyd 01.10.2013
ich vermute das Problem liegt eher im Management Studio. Was bekommst Du für ein Ergebnis wenn du "sp_helptext ProcedureName" absetzt? Bin mir zwar nicht sicher, aber ich glaube beim "Alter Stored Procedure" wird das als Basis herangezogen.
Sweatdiver 01.10.2013
1 Antwort
0
Ich habe versucht das Verhalten unter MS SQL Server 2008 R2 nachzustellen - ohne Erfolg.

Nun könnte das Problem an der Version liegen (bei mir SQL Server 2008 R2, bei Barados SQL Express 2008) - aber das glaube ich nicht.
Damit kann es wahrscheinlich nur am Management Studio liegen - obwohl mir ein derartiges Verhalten bisher auch bei Verwendung älterer Versionen zusammen mit neueren SQL-Server-Versionen nicht aufgefallen ist.
Hilfreich wären deshalb genaue Versionsangaben.
Alternativ würde ich ein SQL-Script erproben mit direkten CREATE PROCEDURE-Statements anstatt sp_executesql().
01.10.2013
edvservice 1,4k 1 6

Stelle deine Sql-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH