Bitte helfen Sie mir mit einer einfachen Formatierung einer dynamischen Zeichenfolge, die ich erstelle, damit ich mehrere Anweisungen gleichzeitig ausführen kann.Ein einfaches Zitat in einer Spalte bricht die dynamische Zeichenfolge
Hier ist der genaue Code, den ich habe, der bricht, wenn der Spaltenwert ein einfaches Anführungszeichen hat und ich den Spaltentext nicht mit dem richtigen Zitat umbrechen kann. Ich versuchte mit doppelten Anführungszeichen und quotename
Funktion, aber keine funktionierte.
declare @str varchar(max)
set @str = ''
declare @addgo varchar(20)
set @addgo = 'GO'
declare @newline varchar(50)
set @newline = char(13)+char(10)
select @str = coalesce(@str, '') + 'sp_addmessage @msgnum = ' + convert(varchar(50), error) + ' , @severity = 16' + ', @msgtext = N''' + "description" + ''''
+ @newline + @addgo + @newline from [msdb].dbo.sysmessages
where error = '777970005'
print @str
Ergebnis:
sp_addmessage @msgnum = 777970005 ,@severity = 16,@msgtext = N'Management group with id '%s' is not a member of this Data Warehouse or you do not have permissions to perform actions for that management group'
GO
Sie doppelte Anführungszeichen für Ihre dynamische Anweisung verwenden könnte oder Anführungszeichen ersetzen, indem sie zu verdoppeln, wo Sie erwarten sie zu sein. –