Click here to Skip to main content
15,893,588 members
Home / Discussions / Database
   

Database

 
QuestionDatabase Update issue Pin
AndieDu16-Nov-08 16:38
AndieDu16-Nov-08 16:38 
AnswerRe: Database Update issue Pin
Wendelius16-Nov-08 18:01
mentorWendelius16-Nov-08 18:01 
AnswerRe: Database Update issue Pin
Vimalsoft(Pty) Ltd17-Nov-08 20:05
professionalVimalsoft(Pty) Ltd17-Nov-08 20:05 
QuestionUsing Between Condition in CASE Statement Pin
dboy22116-Nov-08 8:07
dboy22116-Nov-08 8:07 
AnswerRe: Using Between Condition in CASE Statement Pin
Wendelius16-Nov-08 9:55
mentorWendelius16-Nov-08 9:55 
GeneralRe: Using Between Condition in CASE Statement Pin
dboy22116-Nov-08 12:21
dboy22116-Nov-08 12:21 
GeneralRe: Using Between Condition in CASE Statement Pin
Wendelius16-Nov-08 12:37
mentorWendelius16-Nov-08 12:37 
QuestionProblem with cursor for all databases Pin
angel domon16-Nov-08 0:58
angel domon16-Nov-08 0:58 
I need to solve the problem to execute sp_addextendedproperty with a new description for a column but that does in all the databases (more than 20) for typical the record created_id, deleted_id, updated_id….

I have proven it with sp_MSForeachDB and with a cursor for the tables nested within a cursor for databases but always it gives some problem with "USE @database".

This he would be the one that I believe that it would have to work but there is some detail that forgets to me.

Thank you very much, I have always worked with Oracle and I am new with Transact


USE [master]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_AAA_INSERT_DESCRIPTION_BY_SELECT_COLUMN]
@pCOLUMN VARCHAR(100),
@pDESCRIPTION VARCHAR(255),
@pForced smallint = 0,
@pBD VARCHAR(100) = NULL,
@pExceptBD VARCHAR(100) = NULL
/*
EXEC [SP_AAA_INSERT_DESCRIPTION_BY_SELECT_COLUMN] @pCOLUMN = 'CREATED_ID', @pDESCRIPTION = 'Record creation user', @pForced = 1
, @pBD = 'DBNAME'
, @pExceptBD = 'DBNAME'


*/
AS
BEGIN
SET NOCOUNT ON
DECLARE @cError INT
DECLARE @cErrorMsg VARCHAR(8000)
DECLARE @cSPName SYSNAME
DECLARE @cTIENE_TRAN INT

DECLARE @DB_Name varchar(100)
DECLARE @Command nvarchar(200)
DECLARE @strTable nvarchar(200)
DECLARE @strDescription nvarchar(2000)

SET @cError = 0

SET @cTIENE_TRAN = @@TRANCOUNT

SET @cSPname = OBJECT_NAME(@@PROCID)

BEGIN TRY

IF @cTIENE_TRAN = 0
BEGIN
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRANSACTION @cSPname
END
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/


DECLARE crsBD CURSOR FOR
SELECT [Name]
FROM MASTER.sys.sysdatabases
WHERE [Name] NOT IN ( 'Master', 'tempdb', 'model', 'msdb' )
AND ( @pBD IS NULL OR [Name] = @pBD )
AND ( @pExceptBD IS NULL OR [Name] <> @pExceptBD )
ORDER BY [Name]

OPEN crsBD

FETCH NEXT FROM crsBD INTO @DB_Name

WHILE @@FETCH_STATUS = 0
BEGIN


SET @Command = 'USE [' + @DB_Name + ']'--+ CHAR(13) + CHAR(10) +' GO '+ CHAR(13) + CHAR(10)
print @Command
EXEC ( @Command )

BEGIN TRY
DECLARE crsTable CURSOR FOR
SELECT OBJECT_NAME(c.object_id) AS [TableName], Cast( ex.value AS nVarchar ) AS [Description]
FROM sys.columns c
LEFT OUTER JOIN sys.extended_properties ex
ON ex.major_id = c.object_id
AND ex.minor_id = c.column_id
WHERE OBJECTPROPERTY(c.object_id, 'IsMsShipped') = 0
AND ( ex.value is null OR ( @pForced = 1 AND ex.value is not null))
AND OBJECT_NAME(c.object_id) NOT LIKE 'VIW_%'
AND c.name = @pCOLUMN

OPEN crsTable
FETCH NEXT FROM crsTable INTO @strTable, @strDescription

WHILE @@FETCH_STATUS = 0
BEGIN
--print @strTable
IF ISNULL( @strDescription, '' ) = ''
BEGIN
SET @Command = 'sp_addextendedproperty ''MS_Description'' ,''' + @pDESCRIPTION + ''', ''user'', ''dbo'', ''table'', ''' + @strTable + ''', ''column'', '''+@pCOLUMN + ''''
END
ELSE
BEGIN
SET @Command = 'sp_updateextendedproperty ''MS_Description'' ,''' + @pDESCRIPTION + ''', ''user'', ''dbo'', ''table'', ''' + @strTable + ''', ''column'', '''+@pCOLUMN+''''
END
print @Command
-- EXEC sp_executesql @Command
EXEC ( @Command )

FETCH NEXT FROM crsTable INTO @strTable, @strDescription
END
CLOSE crsTable
DEALLOCATE crsTable
print '... ' + @DB_Name + ' (final)'
print ' '


END TRY
BEGIN CATCH
SELECT @cError = @@ERROR
DEALLOCATE crsTable

SET @cErrorMsg = dbo.fGET_ERROR()
RAISERROR(@cErrorMsg,16,1) WITH LOG
END CATCH
FETCH NEXT FROM crsBD INTO @DB_Name
END

CLOSE crsBD
DEALLOCATE crsBD





/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------*/



IF @cTIENE_TRAN = 0 COMMIT TRANSACTION @cSPname

END TRY

BEGIN CATCH
SELECT @cError = @@ERROR
DEALLOCATE crsBD



IF @cTIENE_TRAN = 0 ROLLBACK TRANSACTION @cSPname

SET @cErrorMsg = dbo.fGET_ERROR()

RAISERROR(@cErrorMsg,16,1) WITH LOG
END CATCH

RETURN(@cERROR)
END
AnswerRe: Problem with cursor for all databases Pin
Wendelius17-Nov-08 7:17
mentorWendelius17-Nov-08 7:17 
QuestionReorder numeric column Pin
AlexeiXX315-Nov-08 11:05
AlexeiXX315-Nov-08 11:05 
AnswerRe: Reorder numeric column Pin
AlexeiXX315-Nov-08 11:26
AlexeiXX315-Nov-08 11:26 
GeneralRe: Reorder numeric column Pin
Blue_Boy15-Nov-08 12:15
Blue_Boy15-Nov-08 12:15 
GeneralRe: Reorder numeric column Pin
AlexeiXX315-Nov-08 13:06
AlexeiXX315-Nov-08 13:06 
GeneralRe: Reorder numeric column Pin
Mycroft Holmes15-Nov-08 23:03
professionalMycroft Holmes15-Nov-08 23:03 
AnswerRe: Reorder numeric column Pin
Wendelius15-Nov-08 22:22
mentorWendelius15-Nov-08 22:22 
QuestionDeny Access through Enterprise Manager Pin
v1i9n6o7d14-Nov-08 19:37
v1i9n6o7d14-Nov-08 19:37 
AnswerRe: Deny Access through Enterprise Manager Pin
Wendelius14-Nov-08 22:03
mentorWendelius14-Nov-08 22:03 
QuestionRolling Sums Pin
StevenWalsh14-Nov-08 9:46
StevenWalsh14-Nov-08 9:46 
AnswerRe: Rolling Sums Pin
StevenWalsh14-Nov-08 10:19
StevenWalsh14-Nov-08 10:19 
AnswerRe: Rolling Sums Pin
Wendelius14-Nov-08 10:19
mentorWendelius14-Nov-08 10:19 
QuestionCreating a dynamic date parameter in a SQL Reporting Services subscription Pin
Mike Devenney14-Nov-08 8:46
Mike Devenney14-Nov-08 8:46 
AnswerRe: Creating a dynamic date parameter in a SQL Reporting Services subscription Pin
Wendelius14-Nov-08 8:50
mentorWendelius14-Nov-08 8:50 
GeneralRe: Creating a dynamic date parameter in a SQL Reporting Services subscription Pin
Mike Devenney14-Nov-08 9:23
Mike Devenney14-Nov-08 9:23 
GeneralRe: Creating a dynamic date parameter in a SQL Reporting Services subscription Pin
Wendelius14-Nov-08 9:36
mentorWendelius14-Nov-08 9:36 
GeneralRe: Creating a dynamic date parameter in a SQL Reporting Services subscription Pin
Mike Devenney14-Nov-08 9:38
Mike Devenney14-Nov-08 9:38 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.