Deleting all tables in a schema
I am trying to delete all tables in a given schema. Any ideas how to do this via t-sql appreciated.
tia,
edm2
If the tables are not dependent one of the other, then simple query like this:
DECLARE @sql NVARCHAR(max)
SELECT @sql = stuff((
SELECT ', ' + quotename(table_schema) + '.' + quotename(table_name)
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'dbo'AND TABLE_TYPE = 'BASE TABLE'
ORDER BY table_name
FOR XML path('')
), 1, 2, '')
SET @sql = 'DROP TABLE ' + @sql
PRINT @sql
BEGIN TRANSACTION
EXECUTE (@SQL)
ROLLBACK TRANSACTION
If they are related, then the script will be much more complex as you need to drop tables in the right order.
For every expert, there is an equal and opposite expert. - Becker's Law
My blog
My TechNet articles
Similar Messages
-
How to delete all rows in all tables of a schema in Oracle?
Hi all,
I want to delete all records of all tables of a schema and I think there should be some statement for this but I don't know how?
may you help?
Edited by: user8105261 on Nov 25, 2009 11:06 PMuser8105261 wrote:
Hi all,
I want to delete all records of all tables of a schema and I think there should be some statement for this but I don't know how?
may you help?
Edited by: user8105261 on Nov 25, 2009 11:06 PMA typical way to reset a schema (e.g. to recreate a schema on the test database) is totally different.
1) Drop the user
2) recreate the user including table scripts from
2a) your version control system
2b) from a export dumpfile using the "nodata" option while importing -
Droping all tables in a schema
how to drop all tables in a schema with out logging in that schema and having logged in as sys user?
Thanks in advance
Edited by: Prasanna.N on May 17, 2010 11:48 PMPrasanna.N wrote:
Hi,
i get this error
ERROR at line 5:
ORA-06550: line 5, column 9:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the
following:
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
when giving
begin
for t in (select table_name from dba_tables where owner = 'SCOTT')
loop
execute immediate 'drop table SCOTT.' || t.table_name || 'purge';
end loop;
/I just wrote for loop, of course you have to write inside begin..end block:
begin
for t in (select table_name from dba_tables where owner = 'SCOTT')
loop
execute immediate 'drop table SCOTT.' || t.table_name || ' purge';
end loop;
end;
/ -
Can we export DATA from all tables in a schema?
Hi,
I have a question; Can we export all the DATA from all the tables present in the schema to any source (eigther CSV, TXT, DAt, etc..)?
Or
Can I have a PL/SQL procedure to display DATA from all Tables in a schema?
With Best Regards,
- NaveedHi,
This is pretty much what you need.
DECLARE
V_COUNT NUMBER;
v_sql varchar2(1000);
IN_OWNER_NAME VARCHAR2(100) := 'AP' ; -- SCHEMA NAME
TYPE T_COL_NAME is table of varchar2(1000) index by binary_integer;
v_col_tbl t_col_name;
BEGIN
FOR i in
(SELECT object_name
FROM dba_objects
WHERE owner = IN_OWNER_NAME
AND object_type ='TABLE'
and rownum < 2)
LOOP
v_sql := 'SELECT COUNT(*) FROM ' || i.object_name ;
EXECUTE IMMEDIATE v_sql INTO V_COUNT;
if v_count > 0 then
v_sql := 'SELECT * FROM ' || i.object_name ;
select column_name
bulk collect
into v_col_tbl
from DBA_TAB_COLUMNS
WHERE TABLE_NAME = I.OBJECT_NAME
AND OWNER = IN_OWNER_NAME;
-- start selecting the column and exporting using the column names selected.
end if;
if v_col_tbl.count > 0 then
for i in v_col_tbl.first .. v_col_tbl.last
loop
DBMS_OUTPUT.PUT_lINE(v_col_tbl(i));
end loop;
end if;
DBMS_OUTPUT.PUT_lINE( i.object_name || '-' || v_count);
END LOOP;
END;
- Ronel -
SQL azure database size not dropping down after deleting all table
Dear all,
I have a simple database on Azure for which I have deleted all table data. The size of the database is still showing 5Mb of data and I am charge for that. I have heard that this may happen from cluster index getting fragmented.
I have run a querry I found on internet on all my table index to show percentage of fragmentation and all report 0%.
DBA is not so my job but what could it be or how can I reduce that size ?
ON premise I would use COMPACT DB but not available in azure like some others DB action
Thnaks for tips
regardsuser created objects/data are not the only ones stored in your database. you got system objects and metadata as Mike mentions above.
are you trying to skip being charged if you're not storing data? looking at the pricing table, you'll still get charged the $4.995 for the 0-100MB database size range. -
Need to grant DML privileges to all tables in few schemas
Hi,
I need to grant DML privileges to all tables in few schemas to a role. How can I achieve that?
I thought it's below syntax but it doesn't work. Please advice.
grant ALL ON ALL TABLES IN SCHEMA <Schema_name> TO <role_name>;Thanks,
GangadharGR wrote:
Hi,
I need to grant DML privileges to all tables in few schemas to a role. How can I achieve that?
I thought it's below syntax but it doesn't work. Please advice.
grant ALL ON ALL TABLES IN SCHEMA <Schema_name> TO <role_name>;
There is no single command to grant privileges at that level. There are either ANY privileges or privileges on an object.
You can write a bit of code to generate and execute what you want, but you would have to rerun it if any new tables were created. -
Grant select on all table of a schema to role
Hi , is it possible to grant select on all table on a schema to a role?
To grant SELECT on all tables of the current schema to particular role or user:
SELECT 'GRANT SELECT ON '||TABLE_NAME||' TO READ_ONLY_ROLE;' COMMAND
FROM (
SELECT TABLE_NAME
FROM ALL_TABLES
WHERE OWNER = (SELECT USER FROM DUAL)
Then copy and execute the result commands, eg:
GRANT SELECT ON DEPT TO READ_ONLY_ROLE;
GRANT SELECT ON EMP TO READ_ONLY_ROLE;
GRANT SELECT ON DEMO_USERS TO READ_ONLY_ROLE;
GRANT SELECT ON DEMO_CUSTOMERS TO READ_ONLY_ROLE;
GRANT SELECT ON DEMO_ORDERS TO READ_ONLY_ROLE; -
All columns of all table in one schema
Hi
All,
Oralce 10.2.0.3
I want to count all columns in all the table in one particular schema.
How can I do that?
which view i should use to count all cloumns of all tables in particular schema?
Thanksvishal patel wrote:
we needed for our data conversion project..I don't know how you'll use the number of columns in all a schema for data conversion. Some columns are duplicated (e.g. PK/FK), should they really count for two ?
A data conversion means you should actually know what are the columns used for, not how many they are.
one more question that count include hidden columns
what is hidden column used for ? I can not see those columns in actual table.See here an example :
Re: Difference btwn user_tab_cols & user_tab_columns
Nicolas. -
Program (PL/SQL) for count the registers of all tables in a schema
Hi...
I create a little program , for count the registers of all tables in the schema...
If you need , send me your email...
Atte
HectorHi,
You can create a script by yourself by executing the script mentioned below:
Connect as sys or system....
SQL> spool test.sql
SQL> select 'select count(*) from '||owner||'.'||table_name||';' from dba_tables;
SQL> spool off;
Hope this helps.
Regards,
-Praveen.
http://myracle.wordpress.com -
What privilege is needed to browse all tables in a schema
I used SQLPlus to login to DB. When I clicked "table" in the left side window, no tables is shown. What privilege is needed to browse all tables in a schema?
Thanks.SQL*Plus is a command-line interface. There is no side window to click on. Perhaps you're talking about SQL Programmer? Or are you talking about some other tool?
What user are you logging in as? What user owns the objects? Do you just want to see that the tables exist? Or do you want to be able to see the data as well?
Justin -
How to delete all TABLEs in Schema SYS which are created since 09:15?
Unfortunately a script created lots of tables in the wrong Tablespace (=SYSTEM) and Schema (=SYS).
How can I delete (in one DDL command) all TABLES which are created inTablespace=SYSTEM and SCHEMA=SYS
during the last 3 hours resp. since 09:15 of 25th Sep 2011 ?
Alternatively: How can I move these TABLEs to another Schema (e.g. ATEST) and Tablespace (USERS)?
Is this possible with Oracle XE or only with Oracle Enterprise?
Peteruser559463 wrote:
Unfortunately a script created lots of tables in the wrong Tablespace (=SYSTEM) and Schema (=SYS).
How can I delete (in one DDL command) all TABLES which are created inTablespace=SYSTEM and SCHEMA=SYS
during the last 3 hours resp. since 09:15 of 25th Sep 2011 ?
Alternatively: How can I move these TABLEs to another Schema (e.g. ATEST) and Tablespace (USERS)?
Is this possible with Oracle XE or only with Oracle Enterprise?
PeterYou can query dba_objects and join it with dba_tables where tablespace_name='SYSTEM' , then drop the tables result of the query; the idea is to use the following query;
SQL> select OWNER, OBJECT_NAME from dba_objects where OBJECT_TYPE='TABLE' and OWNER = 'SYS' and CREATED >= sysdate - 3 / 24;Please consider marking your questions as answered, when it is the case;
Handle: user559463
Status Level: Newbie
Registered: Feb 18, 2007
Total Posts: 583
Total Questions: 266 (186 unresolved)Edited by: orawiss on Sep 26, 2011 4:03 PM -
Deleting the contents of all tables in a schemas
hi ,
can someone tell me if there is a way of deleting the contents of all tables , without dropping any.because the schema is big and just want to empty all tables at the same time.
thanks in advance.Hi,
>>Will they be enabled after running the script?
Well, of course they need to be re-enabled ... don't you think?
SQL> create table a (id number primary key);
Table created.
SQL> create table b (id number constraint fk_b_a references a);
Table created.
SQL> select constraint_name,status from user_constraints where table_name='B';
CONSTRAINT_NAME STATUS
FK_B_A ENABLED
SQL> truncate table a;
truncate table a
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
SQL> alter table b disable constraint fk_b_a;
Table altered.
SQL> truncate table a;
Table truncated.
SQL> select constraint_name,status from user_constraints where table_name='B';
CONSTRAINT_NAME STATUS
FK_B_A DISABLED
SQL> alter table b enable constraint fk_b_a;
Table altered.
SQL> select constraint_name,status from user_constraints where table_name='B';
CONSTRAINT_NAME STATUS
FK_B_A ENABLEDCheers
Legatti -
Monitor all tables of a schema
Hi All,
I would like to monitor all the tables under a schema, hoping to have an alert (in email) if there is decrease in rows of any table owned by the schema (delete rows).
My db version is 11.1.0.6
Please share your suggestions on how it can be done, also if possible with some good examples
Thanks,
Sathishuser13158979 wrote:
can i monitor all the tables owned by the schema using above method? FGA requires object_name need to be monitored, in this case how can we use it?
eg:
DBMS_FGA.ADD_POLICY (object_schema => 'scott', object_name=>'emp', policy_name
=> 'mypolicy1', audit_condition => 'sal < 100', audit_column =>'comm, credit_
card, expirn_date', handler_schema => NULL, handler_module => NULL, enable =>
TRUE, statement_types=> 'INSERT, UPDATE');You can do ;
SQL> conn sys as sysdba
Connected.
SQL> SHOW PARAMETER AUDIT
NAME TYPE VALUE
audit_file_dest string /home/oracle/app/oracle/admin/
ORAWISS/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string DB
SQL> AUDIT ALL BY ORAWISS BY ACCESS;
Audit succeeded.
SQL> AUDIT EXECUTE PROCEDURE BY ORAWISS BY ACCESS;
Audit succeeded.
SQL> AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY ORAWISS BY ACCESS;
Audit succeeded.
SQL> conn orawiss
Enter password:
Connected.
SQL> insert into orawiss.test_audit values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> delete from orawiss.test_audit;
1 row deleted.
SQL> commit;
Commit complete.
SQL> conn sys as sysdba
Connected.
COLUMN username FORMAT A10
COLUMN owner FORMAT A10
COLUMN obj_name FORMAT A10
COLUMN extended_timestamp FORMAT A35
SQL>
SELECT username,
extended_timestamp,
owner,
obj_name,
action_name
FROM dba_audit_trail
WHERE owner = 'ORAWISS'
ORDER BY timestamp;
USERNAME EXTENDED_TIMESTAMP OWNER OBJ_NAME ACTION_NAME
ORAWISS 08-AUG-11 09.59.48.837419 PM +02:00 ORAWISS TEST_AUDIT INSERT
ORAWISS 08-AUG-11 09.59.59.645848 PM +02:00 ORAWISS TEST_AUDIT DELETE
SQL> -
How can count no of rows in all tables in one schema
hi all
i want to cound no of rows in my schema ( all tables)
eg. i have 36 tables
i want to know no of rows in every tables in only one query through sql or plsql
how can i do..
regards
mohammadi
Message was edited by:
Mohdidubai52hi
thanx for ur reply
but i got error....
SQL> ED
Wrote file afiedt.buf
1 DECLARE
2 v_rowNo NUMBER := 0;
3 v_sum NUMBER := 0;
4 v_tableName VARCHAR2(100);
5 CURSOR c1 IS
6 SELECT table_name
7 FROM user_tables;
8 BEGIN
9 FOR counter IN c1 LOOP
10 DBMS_OUTPUT.PUT_LINE(counter.table_name);
11 EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM ' || counter.table_name INTO v_ro
wNo;
12 v_sum := v_sum + v_rowNo;
13 END LOOP;
14 DBMS_OUTPUT.PUT_LINE('Number of rows: ' || v_sum);
15* END;
16 /
DECLARE
ERROR at line 1:
ORA-00933: SQL command not properly ended
ORA-06512: at line 11
again
thanx
regards
Mohammadi -
How to drop all tables in perticular schema??
Hi,
I am new in oracle.
I want to drop all tables in one perticular schema,
Please tell me solution.
PratHameshIf your few of your tables have referential intigrity constraints and trying to drop master table whithout droping child table first, oracle will produce an error.
Better option would be to drop the entire schema and then create a new schema with the same name.
on sql plus.
set long size 20000
select dbms_metadata.get_ddl('USER','USERNAME') from dual;
--then save the above output to create the user later.
drop username cascade
use the above saved script to create the user again.
Jaffar
Maybe you are looking for
-
I downloaded the upgrade manually. I double clicked on the dmg file after it downloaded and it failed. The error.log showed this message. I did some searches and did not get any hits. Adobe Bridge CS6 5.0.1 Update Installation failed. Error Code: U44
-
How to download photos and video from cloud to computer?
How do I download my photos and videos from Verizon Cloud to my computer, more specifically, my external hard drive? I'm out of cloud storage.
-
Live chat is said to be open 2-4 Thursday. It's 3:20! What's with that?
When is live chat? It's Thursday at 3:30 and I have monitored it for the last hour and a half and it has remained closed. Better still how can I stop "scores.htm" continuously downloading when I access Google home page with the sports scores gadget p
-
Photos not showing up on my Touchpad
I recently put a bunch of photos onto by touchpad but when i went to view them only the albums would show up and when I clicked on the albums it would say that they are empty. I then deleted the albums off USB mode (including all the photos) and trie
-
Will this hard drive work in my new black MacBook?
I saw a great deal on a 2.5" 120GB drive from Best Buy. I am considering swapping my internal 80GB drive for this one. Will it work in my Macbook. http://www.circuitcity.com/ccd/productDetail.do?oid=147670&AID=10375042&PID=5521 79&SID=193111-1-0-0&UR