Hallo,
ich habe folgende Gespeicherte Prozedur:
CREATE PROCEDURE InstallUser
-- Add the parameters for the stored procedure here
@username varchar(255),
@password varchar(255),
@name varchar(255),
@mail varchar(255),
@isSupervisor tinyint,
@userGroupCode varchar(255)
AS
BEGIN
if not exists (Select * From [User] where [Username] = @username) AND Len(@password) > 0 AND LEN(@username) > 0
BEGIN
declare @source varbinary(max);
declare @encoded varchar(255);
set @source = (Select HashBytes('MD5', @password));
set @encoded = cast('' as xml).value('xs:base64Binary(sql:variable("@source"))', 'varchar(max)');
Insert Into [User]([Username], [Password], [Name], [Mail], [IsSupervisor], [StorageDate], [StorageUser], [LastChange], [LastUser], [LastComputer]) VALUES(@username, @encoded, @name, @mail, @isSupervisor, getdate(), 'Install', getdate(), 'Install', '')
if exists (Select * From [UserGroup] Where Code = @userGroupCode)
BEGIN
Insert Into [UserGroupAssignment]([UserID], [GroupID], [StorageDate], [StorageUser]) VALUES ((Select Top 1 ID From [User] Where [Username] = @username), (Select Top 1 ID From [UserGroup] Where [Code] = @userGroupCode), getdate(), 'Install')
END
END
END
GO
Wenn ich diese separat einspiele ist alles in Ordnung. Wir führen hier jedoch im Nightly Build alle SQL Dateien, welche sich auf dem TFS und in dem Branch befinden in einer Datei zusammen und nutzen diese zum einspielen auf dem SQL Server.
Ich erhalte beim einspielen des gesamten Skriptes folgenden Fehler:
Meldung 1934, Ebene 16, Status 1, Prozedur InstallUser, Zeile 161935
Fehler bei SELECT, da die folgenden SET-Optionen falsche Einstellungen aufweisen: 'ANSI_PADDING'. Überprüfen Sie, ob die SET-Optionen für die Verwendung mit indizierte Sichten und/oder Indizes für berechnete Spalten und/oder gefilterte Indizes und/oder Abfragebenachrichtigungen
und/oder XML-Datentypmethoden und/oder Vorgänge für räumliche Indizes richtig sind.
Diese Option wieder aber in dem komplett Skript nirgends gesetzt.
Ich weiß allmählich nicht mehr weiter. Wenn Ich den Teil mit MD5 und base64 Konvertierung aus der Prozedur rausnehme klappt alles Einwandfrei. Hat jemand eine Idee?
Beste Grüße
Q-Tec
Dev86 Technical Blog