Solved

Set Multiple values on a Variable

Posted on 2009-03-31
10
327 Views
Last Modified: 2012-05-06
I have the following MSSQL line in my trigger
declare @varID varchar(1000)
set @varID = (SELECT [varID] FROM deleted)

the problem is that the query is returning more than one value and is causing an erro.
So let's say value1,value2 and value3

I want the varID to be equal to "value1,value2,value3"

How can i do that ?


0
Comment
Question by:cscg1976
  • 3
  • 2
  • 2
  • +2
10 Comments
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 24029784
Hello cscg1976,

How are you using @varID?

Regards,

Patrick
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 24029896
You can create a comma separated value using the steps given in the link:

http://blog.namwarrizvi.com/?p=10

Pass the value to @varID
Its done.
0
 
LVL 28

Expert Comment

by:TextReport
ID: 24029983
You can use a cursor
Cheers, Andrew
DECLARE @varID varchar(1000)
DECLARE @Text AS VarChar(100)
 
DECLARE Object_Cursor CURSOR FOR
   SELECT [varID] FROM deleted
 
OPEN Object_Cursor
 
FETCH NEXT FROM Object_Cursor INTO @Text
	  
WHILE @@FETCH_STATUS = 0
  BEGIN
    IF @varID IS NULL
       SET @varID = @Text
    ELSE
       SET @varID = @VarID + ', ' + @Text
	
    FETCH NEXT FROM Object_Cursor INTO @Text
  END
 
CLOSE Object_Cursor
 
SELECT @varID AS rv
 
DEALLOCATE Object_Cursor

Open in new window

0
Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 24030029
usually, you will use a JOIN or EXISTS or IN clause later...

please do NOT use a cursor in your trigger
please try to avoid "programming" solutions if you can do set-based solutions.
0
 
LVL 28

Expert Comment

by:TextReport
ID: 24030256
angelIII "please do NOT use a cursor in your trigger" absolutely sorry I went back to the question and forgot about the trigger.
cscg1976, please disregard my posting
Cheers, Andrew
0
 

Author Comment

by:cscg1976
ID: 24030294
I'm using it to set an sqlQuery to
set @sqlQuery = 'DELETE FROM Table1 WHERE varID IN (''' + @varID + ''')'
0
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 250 total points
ID: 24030331
simple:
DELETE FROM Table1 WHERE varID IN ( SELECT [varID] FROM deleted )
 
or
 
DELETE t1 
 FROM Table1 t1
  JOIN deleted d
    on d.varid = t.varID 

Open in new window

0
 
LVL 92

Assisted Solution

by:Patrick Matthews
Patrick Matthews earned 250 total points
ID: 24030335
cscg1976,

With respect, you are going about this the wrong way :)

Instead, just run the delete directly:

DELETE Table1
FROM deleted d INNER JOIN
      Table1 t ON d.varID = t.varID

Regards,

Patrick
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 24030345
I need faster fingers, apparently :)
0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
sql, case when & top 1 14 28
SQL Dump exec output to table 3 22
Update one table with results from another table in SQL 6 27
SQL 2012 clustering 9 12
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question