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.
| 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 TCon T.table_name=TC.table_name where T.TABLE_TYPE ='BASE TABLE'open c1Fetch next from c1 into @TABLE_NAME, @CONSTRAINT_NAME while (@@Fetch_Status=0) begin --PRINT 'MED_FKEYS---' + @TABLE_NAME + @CONSTRAINT_NAMEif (@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) endelse /*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_NAMEEXEC (@SQL)--select @sql='UPDATE '+ @TABLE_NAME+' SET EMPLOYEENO = '''+@nvalue+ ''' WHERE EMPLOYEENO = '''+ @ovalue +''''--EXEC (@SQL) select @sql='ALTER TABLE '+ @TABLE_NAME + 'NOCHECK CONSTRAINT'+ @CONSTRAINT_NAMEEXEC (@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 endclose c1 deallocate c1return GOThis procedure above gives me errorLine 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/ |
 |
|
|
|
|
|