Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Which rows fail alter column data type
Message
De
10/09/2013 13:49:16
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 6.5 and older
Application:
Web
Divers
Thread ID:
01582711
Message ID:
01582751
Vues:
30
Thanks again. That was my understanding about how to do it but I was not having success. But now you have confirmed doubling the single quote should work I will (steal your code) <s> and go back and try it again.


>>Now a followup question. This is is very useful and I am trying to figure out how to do this passing in the table and column names as variable
>>
>>I think I need to build the expression as a string and then execute it, as just subsituting @colname for CID in the code below doesn't work (just returns the value of @colname for all rows)
>>
>>Since the string contains single quotes, I tried escaping each single quote with another single quote. Tried using Double Quote around the string I'm building. Not sure how to go about this
>>
>>
>>DECLARE @colname VARCHAR(100) = 'cid'
>>DECLARE @tblname VARCHAR(100) = 'caccount_credits'
>>DECLARE @str VARCHAR(max) = ''
>>
>>SELECT @str = @str + 'SELECT CASE WHEN NOT (' + @colname + ' LIKE expression + '  -- and here is where I don't know what to put in so '%' renders correctly in the result
>>
>>????
>>
>
>
>
>DECLARE @colname VARCHAR(100) = 'cid'
>DECLARE @tblname VARCHAR(100) = 'caccount_credits'
>DECLARE @str VARCHAR(max) = ''
>
>SET @str = '
>SELECT CASE
>       WHEN NOT ('+@colname+' LIKE expression + ''%'' OR '+@colname+' LIKE ''{'' + expression + ''}%'') THEN '+@colname+' 
>       END
>FROM   '+@tblname+' T
>       CROSS APPLY (SELECT REPLACE(''00000000-0000-0000-0000-000000000000'', ''0'', ''[0-9a-fA-F]'')
>                                                                             COLLATE Latin1_General_BIN) C2(expression)
>WHERE  NOT ('+@colname+'  LIKE expression + ''%'' OR '+@colname+'  LIKE ''{'' + expression + ''}%'')'
>
>SELECT @str
>


Charles Hankey

Though a good deal is too strange to be believed, nothing is too strange to have happened.
- Thomas Hardy

Half the harm that is done in this world is due to people who want to feel important. They don't mean to do harm-- but the harm does not interest them. Or they do not see it, or they justify it because they are absorbed in the endless struggle to think well of themselves.

-- T. S. Eliot
Democracy is two wolves and a sheep voting on what to have for lunch.
Liberty is a well-armed sheep contesting the vote.
- Ben Franklin

Pardon him, Theodotus. He is a barbarian, and thinks that the customs of his tribe and island are the laws of nature.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform