Ron Moore
rmoore at comtechpst.com
Fri Nov 19 12:55:06 CST 2004
Sorry for the double spacing. I'm using the standard approach below (1 or 0
for the flag) for now, but I'm still curious whether I can use a select
within the SET portion of an UPDATE statement?
UPDATE PLAN_STAGE.dbo.S2B_MD_DT_CHANGES
SET MD_CHANGES = 1
WHERE (SELECT COUNT(1) FROM PLAN_STAGE.dbo.DATA_SOURCE_ACCOUNT_TMP) > 0
Regards,
Ron Moore
-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Ron Moore
Sent: Friday, November 19, 2004 10:17 AM
To: dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer] Update using 'Select (TOP or COUNT) SQL String':
I'm trying to stuff a flag when changes exist in metadata and have been
unsuccessful using a SELECT TOP 1 fieldname, as well as SELECT
COUNT(fieldname). Currently trying the count approach as that would give me
the magnitudes of changes, and the SQL string looks like:
UPDATE PLAN_STAGE.dbo.S2B_MD_DT_CHANGES
SET MD_CHANGES = (SELECT COUNT(CHILD)
FROM
PLAN_STAGE.dbo.DATA_SOURCE_ACCOUNT_TMP
WHERE CHILD IS NOT NULL)
FROM PLAN_STAGE.dbo.S2B_MD_DT_CHANGES,
PLAN_STAGE.dbo.DATA_SOURCE_ACCOUNT_TMP
I have also tried substituting the following WHERE EXISTS in place of the
last FROM line in above SQL string:
WHERE EXISTS (SELECT COUNT(CHILD)
FROM
PLAN_STAGE.dbo.DATA_SOURCE_ACCOUNT_TMP
WHERE CHILD IS NOT NULL)
The select portion by itself works, but the update returns '(0 row(s)
affected)'. What am I missing here?
Thanks in Advance,
Ron Moore
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com