いくつかのクエリをテーブル列に保存しているので、後でいくつかのパラメーターを渡して実行できます。しかし、特殊文字が原因で、クエリを Update 文にフォーマットするのは本当に面倒でした。
例えば:
SELECT * FROM MOUNTAINS WHERE MON_NAME='PALMA' AND MON_DESC LIKE '%TRANVULCANIA%'
次に、udpate クエリのためだけに文字列が必要です。
UPDATE QUERIES
SET QUE_SEL='SELECT * FROM MOUNTAINS WHERE MON_NAME='''+'PALMA'+''' AND MON_DESC LIKE '''+'%TRANVULCANIA%'+''' '
WHERE QUE_ID=1
ご覧のとおり、最初の 'は'''+'に置き換える必要がありますが、次のドア'は'+'''に置き換える必要があります。
これは私が取り組んでいるクエリです:
DECLARE @QUERY VARCHAR(MAX)
SELECT @QUERY='SELECT * FROM QUERIES WHERE QUE_NOMBRE='''+'PRUEBA 1'+''' '
SELECT
t.r.value('.', 'varchar(255)') AS token
, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS id
FROM (
SELECT myxml = CAST('<t>' + REPLACE(@QUERY, '''', '</t><t>''</t><t>') + '</t>' AS XML)
) p
CROSS APPLY myxml.nodes('/t') t(r)
これは結果です:
token id
-------------------------------------------------- --------------------
SELECT * FROM QUERIES WHERE QUE_NOMBRE= 1
' 2
PRUEBA 1 3
' 4
5
ここで、いつ開くか、いつ閉じるかを示す列が必要であり、最終的な置換を設定できます。