从可变长度的变量集动态生成字符串

时间:2019-02-22 21:30:10

标签: sql sql-server tsql

我正在研究一种基于元数据表构建动态sql的存储过程,但遇到了一些困难。

我遇到的主要阻碍因素是需要根据仅在运行时建立的变量列表动态生成字符串。

因此,可以说在存储过程中定义了@ a,@ b,@ c和@d。以及@user和@domain。

该过程使用@user和@domain并链接回到包含该组合的相关变量集的元数据表。对于@user ='Josh'和@domain = 1,结果将是:

|变量|用户|域|

| @a ......... |乔希| 1 ............ |

| @c ......... |乔希| 1 ............ |

| @d ......... |乔希| 1 ............ |

请注意,此表包含变量的文字名称'@a','@ b'等。它不包含变量当前代表的含义。

现在在过程@a ='I',@ c ='Love',@ d ='冰淇淋'中。

将光标放在表格的此部分上,怎么可能构造“我爱冰淇淋”这个句子?

(更可爱的是,@ b ='Do Not'。我正在经历这个麻烦,以至于明确地不包括@b,因为如果我这样做了,这将是一个谎言。)

1 个答案:

答案 0 :(得分:0)

只需使用REPLACE()将字符串中的变量引用替换为变量值。

SET @string = REPLACE(@string, '@user', @user) 

,并对每个变量重复相同的步骤。