Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Disable constraints, and Updating

Author  Topic 

K_P
Starting Member

10 Posts

Posted - 2008-04-07 : 14:25:54
ALTER PROCEDURE NEW
(
@tablename sysname = null,
@nvalue varchar(10) = null,
@ovalue varchar(10) = null
)
As
Declare @TABLE_NAME sysname
Declare @CONSTRAINT_NAME sysname
Declare @employeeno sysname
declare @sql sysname
Declare c1 Cursor for
select TC.table_name, TC.constraint_Name from INFORMATION_SCHEMA.TABLES T
left outer join INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
on T.table_name=TC.table_name where T.TABLE_TYPE ='BASE TABLE'
open c1

Fetch next from c1 into @TABLE_NAME, @CONSTRAINT_NAME
while (@@Fetch_Status=0)
begin
--PRINT 'MED_FKEYS---' + @TABLE_NAME + @CONSTRAINT_NAME
if (@CONSTRAINT_NAME is null)
begin
/* If neither primary key nor foreign key table names given */
raiserror ('No Constraints' ,-1,-1)
end
else
select @sql='select' +@employeeno+' = EMPLOYEENO from'+ @TABLE_NAME
EXEC (@SQL)
if (@employeeno = NULL)
begin
/* If neither primary key nor foreign key table names given */
raiserror ('No EmployeeNo : ' ,-1,-1)
end
else
/*Disable the triggers and constraitns*/
SELECT @SQL='ALTER TABLE '+ @TABLE_NAME + ' DISABLE TRIGGER ALL'
EXEC (@SQL)
select @sql='ALTER TABLE '+ @TABLE_NAME + 'NOCHECK CONSTRAINT'+ @CONSTRAINT_NAME
EXEC (@SQL)
--select @sql='UPDATE '+ @TABLE_NAME+' SET EMPLOYEENO = '''+@nvalue+ ''' WHERE EMPLOYEENO = '''+ @ovalue +''''
--EXEC (@SQL)

select @sql='ALTER TABLE '+ @TABLE_NAME + 'NOCHECK CONSTRAINT'+ @CONSTRAINT_NAME
EXEC (@SQL)
SELECT @SQL='ALTER TABLE '+ @TABLE_NAME + ' ENABLE TRIGGER ALL'
EXEC (@SQL)
/*Enable the triggers and the constraints */
Fetch next from c1 into @TABLE_NAME, @CONSTRAINT_NAME
end
close c1
deallocate c1
return

GO

This procedure above gives me error

Line 1: Incorrect syntax near CONSTRAINT name.
Incorrect syntax near the keyword 'KEY'

Warning:
The table name has been created but its maximum row size (10760) exceeds the maximum number of bytes per row (8060). INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.


Can Anyone pls help

dineshasanka
Yak Posting Veteran

72 Posts

Posted - 2008-04-07 : 15:22:36
Check whether you have given a space

select @sql='ALTER TABLE '+ @TABLE_NAME + 'NOCHECK CONSTRAINT'+ @CONSTRAINT_NAME
should be
select @sql='ALTER TABLE '+ @TABLE_NAME + ' NOCHECK CONSTRAINT '+ @CONSTRAINT_NAME

---------------------
http://dineshasanka.spaces.live.com/
Go to Top of Page
   

- Advertisement -