Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Cambiar una SQL (http://www.forosdelweb.com/f87/cambiar-sql-393982/)

selma128 16/05/2006 01:27

Cambiar una SQL
 
Buenos dias, estoy tratando de hacer una sentencia de SQL que me permita cambiar el propietario de los procedimientos almacenados en mi base de datos pero hasta el momento solo he conseguido hacer que la sentencia SQL me construya las sentencias que debo de ejecutar despues.

Esta es la sentencia y me gustaria transformarla en algo que se ejecute directamente.




DECLARE @oldOwner sysname, @newOwner sysname

SELECT
@oldOwner = 'ss_420_limpio'
, @newOwner = 'ss_42002'

select 'EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.R OUTINE_NAME)+''','''+@newOwner+''''
from
INFORMATION_SCHEMA.ROUTINES a
where
a.ROUTINE_TYPE = 'procedure' or a.ROUTINE_TYPE = 'function'
AND a.SPECIFIC_SCHEMA = @oldOwner
AND
OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHE MA)+'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0



Esta sentencia me devuelve la siguiente cadena

"execute sp_changeobjectowner......"

pero lo que busco es que se ejecute en un solo paso esa funcion.

Podeis ayudarme

Gracias

Mithrandir 16/05/2006 15:55

Prueba algo como esto. Basicamente se trata de almacenar en una variable los resultados del select para luego ejecutar el contenido de la cadena.
Código:

DECLARE @sql VarChar(8000)

SET @sql = ''

select @sql = @sql +'  EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.R OUTINE_NAME)+''','''+@newOwner+''''
from
INFORMATION_SCHEMA.ROUTINES a
where
a.ROUTINE_TYPE = 'procedure' or a.ROUTINE_TYPE = 'function'
AND a.SPECIFIC_SCHEMA = @oldOwner
AND
OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHE MA)+'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0

EXEC sp_executesql @sql


Developer9 16/05/2006 17:07

Este man es un duro :arriba:


La zona horaria es GMT -6. Ahora son las 20:50.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.