hi,
[quoted text, click to view] barhoc11@gmail.com wrote:
> Thanks Andrea for the quick response. My next question is, what is an
> easy way to move a MAX value to a table that would only need one row
> and one column(the MAX value I want to query)?
this feature is often used to store "next id" values for tables without an
identity property for the surrogate key, and a specific table stores all
table names (or relative OBJECT_ID , as you prefer) which is queried and
updated when inserting new rows..
something like
SET NOCOUNT ON
USE tempdb
GO
CREATE TABLE dbo.sometable1 (
Id int NOT NULL
)
CREATE TABLE dbo.sometable2 (
Id int NOT NULL
)
CREATE TABLE dbo.MaxTbValues (
objName varchar(257) NOT NULL ,
MaxVal int
)
INSERT INTO dbo.sometable1 VALUES ( 50 )
GO
DECLARE @obj varchar(257) , @max int
SELECT @obj = 'dbo.sometable1' , @max = (SELECT ISNULL( MAX (Id) , 0 ) FROM
dbo.sometable1 )
SELECT @obj , @max
IF NOT EXISTS ( SELECT 1 FROM dbo.MaxTbValues WHERE objName = @obj ) BEGIN
INSERT INTO dbo.MaxTbValues VALUES ( @obj , @max )
END
ELSE BEGIN
UPDATE dbo.MaxTbValues SET MaxVal = @max FROM dbo.MaxTbValues WHERE objName
= @obj
END
INSERT INTO dbo.sometable1 VALUES ( 1000 )
SELECT @obj = 'dbo.sometable1' , @max = (SELECT ISNULL( MAX (Id) , 0 ) FROM
dbo.sometable1 )
SELECT @obj , @max
IF NOT EXISTS ( SELECT 1 FROM dbo.MaxTbValues WHERE objName = @obj ) BEGIN
INSERT INTO dbo.MaxTbValues VALUES ( @obj , @max )
END
ELSE BEGIN
UPDATE dbo.MaxTbValues SET MaxVal = @max FROM dbo.MaxTbValues WHERE objName
= @obj
END
SELECT @obj = 'dbo.sometable2' , @max = (SELECT ISNULL( MAX (Id) , 0 ) FROM
dbo.sometable2 )
SELECT @obj , @max
IF NOT EXISTS ( SELECT 1 FROM dbo.MaxTbValues WHERE objName = @obj ) BEGIN
INSERT INTO dbo.MaxTbValues VALUES ( @obj , @max )
END
ELSE BEGIN
UPDATE dbo.MaxTbValues SET MaxVal = @max FROM dbo.MaxTbValues WHERE objName
= @obj
END
SELECT * FROM dbo.MaxTbValues
GO
DROP TABLE dbo.sometable1 , dbo.sometable2 , dbo.MaxTbValues
where you store the object name and it's relative MAX value you can later
query for your defined purposes..
for the surrogate key scenario this solution does not scale very well, but
it is used...
--
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtm http://italy.mvps.org DbaMgr2k ver 0.15.0 - DbaMgr ver 0.60.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply