Sql 从包含查询的列中获取表的名称

Sql 从包含查询的列中获取表的名称,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有下表: ColID Columns 1 SELECT Col1, Col2, Col3, Col4, Col5 FROM MyTab 我想在返回架构和表名后获取表名。选择“其他内容”、“来自”、[FROM]、FROM_DATE、FROMSH的FROMMAGE或从dbo.MyFunction(GETDATE())MY.SomeCol上的MY JOIN dbo.MyTable MT=MT.SomeCol@jarlh我无法理解您的查询从名为FROMSH的表中选择文字字符串,'what F

我有下表:

ColID Columns
1     SELECT Col1, Col2, Col3, Col4, Col5 FROM MyTab

我想在返回架构和表名后获取表名。

选择“其他内容”、“来自”、[FROM]、FROM_DATE、FROMSH的FROMMAGE
从dbo.MyFunction(GETDATE())MY.SomeCol上的MY JOIN dbo.MyTable MT=MT.SomeCol
@jarlh我无法理解您的查询从名为
FROMSH
的表中选择文字字符串,
'what FROM else'
,以及
FROM DATE
FROMMAGE
(法语表示奶酪)列
FROMSH
,@StrangePerson.@jarlh拼写正确:fromage;)如果您有MyTab t中的
,那会怎么样?一个例子远远不足以让我们开始回答这个问题,但您在这里真正要问的是如何解析SQL语句(批处理?),并使用SQL确定引用对象之类的内容。T-SQL的字符串操作和检查功能非常差;如果我诚实的话,这是你做这件事的最后一种语言。它对Regex没有本机支持,并且它的
LIKE
表达式非常有限。你最好找一个开发良好的代码解析器来做这件事。@GordonLinoff希望我的查询没有别名,但很有道理。这能回答你的问题吗?与上一个问题有什么不同?首先使用查找
t-sql解析器
。这将让你避免所有的乐趣与
选择。。。从富作为酒吧
选择。。。从[到从日期],连接。
SELECT SUBSTRING(Columns, CHARINDEX('FROM',Columns) + LEN('FROM'), LEN(Columns))
FROM yourTable