-1

所以我有这个声明:

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

4

2 回答 2

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 查询。

于 2013-04-11T11:25:05.463 回答
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'
于 2013-04-11T11:19:49.897 回答