将SQL语句结果用作字符串

时间:2013-04-11 11:14:53

标签: sql sql-server string

所以我有这样的陈述:

select @sqlStmt = 'SELECT replace(replace(substring(base_object_name,1,CHARINDEX(''.'',base_object_name) - 1),''['',''''),'']'','''')
    FROM sys.synonyms
    WHERE name = ''S_LC'''

我想知道是否有办法使用该语句的结果,例如连接到另一个字符串?

我正在使用SQL Server 2008

2 个答案:

答案 0 :(得分:1)

如果你想执行sql语句并将结果连接到另一个sql变量,你可以这样做

           DECLARE @anotherString VARCHAR(10)

           EXEC sp_executeSQL
           'SELECT @output = replace(replace(substring(base_object_name,1,CHARINDEX(''.'',base_object_name) - 1),''['',''''),'']'','''')
           FROM sys.synonyms WHERE name = ''S_LC''', N'@output VARCHAR(10) OUTPUT', @output= @anotherString OUTPUT;

现在@anotherString已准备好与任何其他字符串连接。

请注意,我还没有编译你的SQL查询。

答案 1 :(得分:0)

如果你执行它而不仅仅将它存储在你的变量中,是:

DECLARE @objName NVARCHAR(255)

SELECT @objName = REPLACE(
                    REPLACE(
                      SUBSTRING(base_object_name,1,
                          CHARINDEX('.',base_object_name) - 1),
                    '[',''),
                  ']','')
    FROM sys.synonyms
    WHERE name = 'S_LC'