所以我有这样的陈述:
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
答案 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'