sql >> データベース >  >> RDS >> Sqlserver

動的クエリの更新クエリを (自動的に) 生成する方法は?

    @rivarolle によって提供されたソリューションの適応

    DECLARE @QUERY VARCHAR(MAX)DECLARE @FORMATTED varchar(max)SELECT @QUERY='SELECT * FROM QUERIES WHERE QUE_NOMBRE='''+'PRUEBA 1'+'''';WITH TOKENS AS( SELECT t.r.value('.', 'varchar(MAX)') AS token , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS Id FROM ( SELECT myxml =CAST('' + REPLACE(@QUERY, '''', '''') + '' AS XML) ) p CROSS APPLY myxml.nodes('/t') t(r ) ) ,Tokens2 as ( SELECT TOKENS.token as token ,quotes.row%2 as tipoapostrofefrom Tokens left join (select row_number() over( Id asc による順序) as row, a.* FROM (SELECT * from Tokens) a where Token ='''') quotes.Id =Tokens.Id)SELECT @FORMATTED =STUFF(( SELECT ' ' + REPLACE(トークン,'''',CASE Tipoapostrofe WHEN 1 THEN '''''''+ ''' WHEN 0 THEN '''+''''''' ELSE '' END) AS [text()] FROM Tokens2FOR XML PATH('') ), 1, 1, '')print @FORMATTED  

    これは機能し、XML 特殊文字を消去する関数と元に戻す関数が必要なだけで、動的クエリは更新の準備ができて出力されます。



    1. 両方に複合主キーがある場合、Hibernateは2つの無関係なテーブルを結合します

    2. PostgreSQLでトリガーを一時的に無効にするにはどうすればよいですか?

    3. AzureポータルでLinux上のSQLServer2017の使用を開始する

    4. SSIS ForEach ループ - for ループ内で接続を変更する