2016-09-07 1 views

Répondre

1

Essayez cette

DECLARE @SQL NVARCHAR(max) = '' 
    ,@TargetDBName NVARCHAR(255) = 'TargetDBName' 

DECLARE c CURSOR 
FOR 
SELECT DEFINITION 
FROM SourceDBName.[sys].[procedures] p 
INNER JOIN SourceDBName.sys.sql_modules m ON p.object_id = m.object_id 

OPEN c 

FETCH NEXT 
FROM c 
INTO @sql 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    SET @sql = REPLACE(@sql, '''', '''''') 
    SET @sql = 'USE [' + @TargetDBName + ']; EXEC(''' + @sql + ''')' 

    EXEC SP_EXECUTESQL @sql 

    FETCH NEXT 
    FROM c 
    INTO @sql 
END 

CLOSE c 

DEALLOCATE c