一時テーブルの列の一部のテキスト(マスク)を置き換えています。私は検索可能なテキストをテーブルの列に置き換えています。SQL Server - T-SQLで複数置き換えを行う方法
例:
SELECT TOP 1000 *
INTO TEMP_COMPL_L
FROM TB_CONTRATO
WHERE IDCAR_CON = 1
ALTER TABLE TEMP_COMPL_L
ADD COMPL_TMP VARCHAR(1500)
UPDATE TEMP_COMPL_L
SET COMPL_TMP = '#FIRSTNAME#, URGENTE: Va a sua loja no dia #DATE# e procure o Gerente #MANAGERNAME#.'
-- GET DATAS FROM MASKS HERE
UPDATE TEMP_COMPL_L
SET COMPL_TMP = REPLACE(REPLACE(REPLACE(COMPL_TMP,
'#FIRSTNAME#', LEFT(NOME_CLI, CHARINDEX(' ',NOME_CLI)-1)),
'#MANAGERNAME#', ISNULL(CONTT_LOJ,'')),
'#DATE#', CONVERT(VARCHAR(10), GETDATE(), 103)
)
FROM TEMP_COMPL_L
INNER JOIN TB_CLIENTE ON IDCLI_TMP = IDCLI_CLI
LEFT JOIN TB_LOJA ON IDLOJ_TMP = IDLOJ_LOJ
それは完璧に動作する方法は、しかし、私はマスクを取るとの値を置き換えるを与え、クライアントによって知らさ20枚の以上の可能なマスクのためにこれを行う必要があります表LOJAおよびCLIENTEの対応する列。
パフォーマンスが向上し、視認可能な状態にする方法はありますか?いくつかの置き換えは非常に混乱するためです。 SQL Serverで許可される置換の制限に加えて。
ネスト交換は超高速で、使用できる番号には制限がありません。読みやすいように書式を設定するのは難しいことですが、すでに始まった素晴らしいパターンがあるようです。 –
私は入れ子の限界があると思った。私はそれをそのように見ます。 – Luiz