SQL Server EXEC SELECT语句内部的原始SQL查询

时间:2018-08-03 14:59:52

标签: sql sql-server

我有一个表,其中包含一个外部表名,在这里我可以找到所需的值(该表没有任何PK / FK,我无法更改此值)。 问题是,是否可以在SELECT语句内执行动态SQL查询?

类似

SELECT Col1, 
       Col2,
       'SELECT TOP 1 Col from ' + Col3,
FROM Table1

3 个答案:

答案 0 :(得分:0)

我不确定这是否准确地是您要执行的操作,但是如果您要连接的值将是相同的(看起来像),这可能是一个解决方案例如示例中的H9):

AE_C

这将导致:

0

您还可以制作一个临时表或进行自我联接。我认为这里有一些解决方案可以满足您的需求。祝好运! :)

答案 1 :(得分:0)

不是直接的,但是您可以考虑将Table1的值形式选择到临时表中,然后使用动态UPDATE语句添加col3指定的值形式表。不是很优雅,也没有尝试过使用DB,但是类似的东西可能会带您解决问题

SELECT Col1, 
    Col2,
    Col3
    TopOfCol3Table = ''
INTO #TempTable1
FROM Table1

DECLARE @Sql VARCHAR(1024) =  '
UPDATE #TempTable1
SET TopOfCol3Table = (SELECT TOP 1 Col FROM ' + Col3 ')'

EXECUTE sp_executesql @Sql

答案 2 :(得分:-1)

您可以通过调用以TSQL命令文本为参数的存储过程 sp_executesql 来执行TSQL命令。

以下是一些相关文档:sp_executesql (Transact-SQL)

对结果的处理是实现的全部内容。