2013-04-11 24 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 Server 2008

+1

這是行不通的嗎? – Alex 2013-04-11 11:16:58

+0

@voo,是這個代碼的作品。 – user2164702 2013-04-11 11:19:11

回答

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 2013-04-11 11:35:07

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'