2013-04-11 3 views
-1

так что я это заявление:Использование SQL заявление результат в виде строки

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

мне интересно, если есть способ, чтобы использовать результат от этого заявления, к примеру сцепить на другую строку?

Я использую SQL сервер 2008

+1

Это работает? – Alex

+0

@voo, да, этот код работает. – user2164702

ответ

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.

+0

Спасибо, это работает. – user2164702

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' 
Смежные вопросы