-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 に答える