select table_name,
to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from '||owner||'.'||table_name)),'/ROWSET/ROW/C')) as count
from all_tables
where owner = 'SchemaName';Hope it helps.
Computer, Technology, Databases, Google, Internet, Mobile, Linux, Microsoft, Open Source, Security, Social Media, Web Development, Business, Finance
select table_name,
to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from '||owner||'.'||table_name)),'/ROWSET/ROW/C')) as count
from all_tables
where owner = 'SchemaName';SELECT tbl.name, CAST(p.rows AS int) 'count', tbl.schema_id, SCHEMA_NAME(tbl.schema_id) schema_name FROM sys.tables AS tbl INNER JOIN sys.indexes AS idx ON idx.object_id = tbl.object_id AND idx.index_id < 2 INNER JOIN sys.partitions AS p ON p.object_id = CAST(tbl.object_id AS int) AND p.index_id = idx.index_id --WHERE ((SCHEMA_NAME(tbl.schema_id) = 'dbo')) ORDER BY 2 DESC
--enable to show advanced options EXEC sp_configure 'show advanced options', 1 GO --apply changes for show advanced options RECONFIGURE GO --enable xp_cmdshell EXEC sp_configure 'xp_cmdshell', 1 GO --apply changes for xp_cmdshell RECONFIGURE GO --replace network path, username and password accordingly EXEC xp_cmdshell 'NET USE Z: \\SERVER\Path password /USER:Domain\Username' GO
EXEC sp_MSForEachDB 'DBCC SHRINKDATABASE (''?'' , 0)'EXEC sp_MSForEachTable 'ALTER INDEX ALL ON ? REBUILD'
--SQL function to do split (performance enhanced)
CREATE FUNCTION [dbo].[Split_PerformanceEnhanced]
(
@List NVARCHAR(MAX),
@Delimiter VARCHAR(5)
)
RETURNS @RtnValue TABLE
(
ID INT IDENTITY(1,1),
Data VARCHAR(MAX)
)
AS
BEGIN
INSERT INTO @RtnValue(Data)
SELECT [Value] FROM
(
SELECT
[Value] = LTRIM(RTRIM(SUBSTRING(@List, [Number],
CHARINDEX(@Delimiter, @List + @Delimiter COLLATE Latin1_General_100_BIN2, [Number]) - [Number])))
FROM (SELECT Number = ROW_NUMBER() OVER (ORDER BY name)
FROM sys.all_objects) AS x
WHERE Number <= LEN(@List)
AND SUBSTRING(@Delimiter + @List, [Number], LEN(@Delimiter)) = @Delimiter
) AS y
RETURN;
END
GO
--Test out the SQL function
SELECT * FROM dbo.Split_PerformanceEnhanced('one|two|three|four', '|')
GO
Below SQL function still works but prefer the above new performance enhanced version.
--SQL function to do split
CREATE FUNCTION [dbo].[Split]
(
@RowData NVARCHAR(MAX),
@SplitOn CHAR(1)
)
RETURNS @RtnValue TABLE
(
ID INT IDENTITY(1,1),
Data VARCHAR(MAX)
)
AS
BEGIN
DECLARE @count INT
SET @count = 1
WHILE (CHARINDEX(@SplitOn COLLATE Latin1_General_100_BIN2, @RowData) > 0)
BEGIN
INSERT INTO @RtnValue (data)
SELECT Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, CHARINDEX(@SplitOn COLLATE Latin1_General_100_BIN2, @RowData) - 1)))
SET @RowData = SUBSTRING(@RowData, CHARINDEX(@SplitOn COLLATE Latin1_General_100_BIN2, @RowData) + 1, LEN(@RowData))
SET @count = @count + 1
END
INSERT INTO @RtnValue (data)
SELECT Data = LTRIM(RTRIM(@RowData))
RETURN
END
GO
--Test out the SQL function
SELECT * FROM dbo.Split('one|two|three|four', '|')
GO
SELECT DISTINCT so.name FROM syscomments sc INNER JOIN sysobjects so ON sc.id = so.id AND so.xtype = 'P' WHERE sc.TEXT LIKE '%TABLE_NAME%'
IF ISNULL(object_id('cspRandomString'),0)<>0 DROP PROC cspRandomString
IF ISNULL(object_id('fnGenRandomInteger'),0)<>0 DROP FUNCTION fnGenRandomInteger
GO
CREATE function fnGenRandomInteger(@MinValue int, @MaxValue int, @Seed float)
returns int
as
begin
-- =============================================
-- Author: Loh Hon Chun
-- =============================================
return ((@MaxValue + 1) - @MinValue) * @Seed + @MinValue
end
go
CREATE procedure cspRandomString (
@Result varchar(255) output,
@AcceptedChars varchar(255),
@Length int
)
as
begin
-- =============================================
-- Author: Loh Hon Chun
-- =============================================
set nocount on
declare @ret char(255)
declare @i int, @pos int
set @Result = ''
set @i = 0
if LEN(@AcceptedChars) > 0
begin
while @i < @Length
begin
set @pos = dbo.fnGenRandomInteger(1, LEN(@AcceptedChars), RAND(CONVERT(VARBINARY, NEWID())))
set @Result = @Result + CAST(SUBSTRING(@AcceptedChars, @pos, 1) AS VARCHAR(1))
set @i = @i + 1
end
end
end
go
declare @result varchar(255)
declare @acceptedChars varchar(255)
declare @length int
set @acceptedChars = '0123456789'
set @length = 7
exec cspRandomString @Result=@result output, @AcceptedChars=@acceptedChars, @Length=@length
print @result
go
sqlcmd -S SERVER\INSTANCE -i mysqlscript.sql
sqlcmd -S SERVER\INSTANCE,PORT -i mysqlscript.sql
sqlcmd -S np:\\127.0.0.1\pipe\MSSQL$INSTANCE\sql\query -i mysqlscript.sql
--Create some test data
IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'tblTest') AND type in (N'U')) DROP TABLE tblTest
GO
CREATE TABLE tblTest (Label VARCHAR(20), OriginalOrderNo INT, OrderNo INT)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('four', 4, 4)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('seven', 7, 7)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('one', 1, 1)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('two', 2, 2)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('five', 5, 5)
INSERT INTO tblTest (Label, OriginalOrderNo, OrderNo) VALUES ('nine', 9, 9)
GO
--BEFORE
SELECT * FROM tblTest ORDER BY OrderNo
GO
--DO the UPDATE
UPDATE t1 SET t1.OrderNo = t2.Sequence
FROM tblTest t1 INNER JOIN (
SELECT Label, OrderNo, ROW_NUMBER() OVER (ORDER BY OrderNo) AS 'Sequence'
FROM tblTest) AS t2 ON t1.OrderNo = t2.OrderNo
GO
--AFTER
SELECT * FROM tblTest ORDER BY OrderNo
GO
IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'tblTest') AND type in (N'U')) DROP TABLE tblTest
GO
SELECT t.object_id AS 'TableID', t.name AS 'TableName', s.schema_id AS 'SchemaID', s.name AS 'SchemaOwner' FROM sys.tables t inner join sys.schemas s ON t.schema_id = s.schema_id ORDER by t.name
--Get all table/columns information from all databases sp_MSforeachdb 'SELECT * FROM [?].[INFORMATION_SCHEMA].[COLUMNS]' --Check for orphans login EXECUTE sp_MSforeachdb 'sp_change_users_login @Action=''report''' --Get database information - space, name EXECUTE sp_MSforeachdb 'SELECT ServerName=@@SERVERNAME, DBName=DB_NAME(), [fileid], CONVERT(DECIMAL(12,2),ROUND([size]/128.000,2)) AS ''SizeMB'', SpaceUsedMB = CONVERT(DECIMAL(12,2),ROUND(FILEPROPERTY([name],''SpaceUsed'')/128.000,2)), FreeSpaceMB = CONVERT(DECIMAL(12,2),ROUND(([size]-FILEPROPERTY([name],''SpaceUsed''))/128.000,2)) , name, filename FROM dbo.sysfiles'
--Check space used for each table in a database EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]'; --Check for integrity of tables in a database EXECUTE sp_MSforeachtable 'DBCC CHECKTABLE ([?])'
![]() |
| Saving changes is not permitted ... |
![]() |
| Options Box |
![]() |
| SQL Management Studio 2008 |
C:\Windows\SysWOW64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll", OpenDSLFile C:\test.udl
update tblTest
set
Age = Age + 1, LastModifiedDate = GETDATE()
where Name = 'Name 1'
select * from tblTest
where Name = 'Name 1'--SETUP
if ISNULL(object_id('tblTest'),0)<>0 drop table tblTest
go
create table tblTest (
ID int identity(1,1) not null primary key,
Name varchar(255) not null,
Age tinyint not null,
LastModifiedDate datetime not null default getdate()
)
go
--INSERT test records
insert into tblTest (Name, Age) values ('Name 1', 21)
insert into tblTest (Name, Age) values ('Name 2', 22)
go
--CREATE the temp table for select
if ISNULL(object_id('tempdb..#tem_tblTest'),0)<>0 drop table #tem_tblTest
create table #tem_tblTest (ID int, Name varchar(255), Age tinyint)
--UPDATE record and select into temp table (All in one statement)
update tblTest
set
Age = Age + 1, LastModifiedDate = GETDATE()
output inserted.ID, inserted.Name, inserted.Age into #tem_tblTest (ID, Name, Age)
where Name = 'Name 1'
--SELECT what's updated
select * from #tem_tblTest
go
--CLEANUP
if ISNULL(object_id('tempdb..#tem_tblTest'),0)<>0 drop table #tem_tblTest