Comment puis-je utiliser un guillemet simple dans la command sql?

Dupliquer possible:
Comment puis-je échapper une seule citation dans sqlserver?

J'ai un script ci-dessous qui laisse tout tomber sur la database à partir de ce lien . Il fait une erreur quand j'exécute sur cette ligne.

SET @statement = ' IF(@type = 'F') or (@type = 'C') or (@type = 'D') or (@type='F') or (@type='K') 

La raison est parce que la citation unique. Je veux savoir comment puis-je corriger cette erreur?

 /*** drop (pretty much) everything before rebuilding the database ***/ DECLARE OBJECTS CURSOR FOR SELECT so.name, so.type, so.type_desc, p.name AS parentName FROM sys.objects AS so LEFT JOIN sys.objects AS p ON so.parent_object_id = p.object_id WHERE so.schema_id = 1 ORDER BY CASE WHEN so.type = 'F' THEN 0 WHEN so.type = 'TR' THEN 1 WHEN so.type = 'U' THEN 2 WHEN so.type = 'F' THEN 3 ELSE 4 END OPEN OBJECTS DECLARE @name AS nvarchar (MAX) DECLARE @type AS nvarchar (2) DECLARE @type_desc AS nvarchar DECLARE @parentName AS nvarchar (MAX) DECLARE @statement AS nvarchar (MAX) FETCH NEXT FROM OBJECTS INTO @name, @type, @type_desc, @parentName WHILE @@FETCH_STATUS = 0 BEGIN SET @statement = ' IF(@type = ' F ') BEGIN PRINT ' DROPING FK : ' + @name + ' OF type ' + @type + ' (' + @type_desc + ') ' SET @statement = ' ALTER TABLE ' + @parentName + ' DROP CONSTRAINT ' + @name EXECUTE(@statement) END ELSE IF (@type = ' TR ') BEGIN PRINT ' DROPING TRIGGER : ' + @name + ' OF type ' + @type + ' (' + @type_desc + ') ' SET @statement = ' DROP TRIGGER ' + @name EXECUTE(@statement) END ELSE IF (@type = ' U ') BEGIN PRINT ' DROPING TABLE : ' + @name + ' OF type ' + @type + ' (' + @type_desc + ') ' SET @statement = ' DROP TABLE ' + @name EXECUTE(@statement) END ELSE IF (@type = ' FN ') BEGIN PRINT ' DROPING FUNCTION : ' + @name + ' OF type ' + @type + ' (' + @type_desc + ') ' SET @statement = ' DROP FUNCTION ' + @name EXECUTE(@statement) END ELSE PRINT ' Didn 't drop object ' + @name + ' of type ' + @type + ' (' + @type_desc + ')' FETCH NEXT FROM OBJECTS INTO @name, @type, @type_desc, @parentName END CLOSE OBJECTS DEALLOCATE OBJECTS 

si vous voulez utiliser une citation simple dans une instruction préparée, évitez-la avec une autre citation unique, exemple,

 SET @statement = 'world''s view'; SET @statement2 = 'world''s view'; 

de votre exemple ci-dessus

 SET @statement = ' IF(@type = ''F'') or (@type = ''C'') or (@type = ''D'') or (@type=''F'') or (@type=''K'')' -- the ssortingngs are all red. 

Un guillemet simple est utilisé pour représenter un littéral de string en SQL. Si vous devez insert explicitement un guillemet simple, vous devez utiliser des guillemets simples doubles ('')

Ça devrait être comme ça:

 SET @statement = 'IF(@type = ''F'') or (@type = ''C'') or (@type = ''D'') or (@type=''F'') or (@type=''K'')' 

Raj