Hi,

Mau nanya tentang t-sql di sql server 2005.

Saya bikin cursor seperti di bawah, intinya saya mau cari informasi di table
dan field mana value yg saya punya.
Contohnya, saya mau cari value 'UAT' di table issues.

Permasalahannya, di line "IF EXISTS (SELECT * from issues where @column =
@field_value)" itu selalu di anggap salah sehingga larinya ke ELSE terus.

Saya coba check dengan nambahin beberapa statements buat check,

SET @SQLString =
N'SELECT * from issues where @column = @field_value';
EXECUTE (@SQLString)

Ternyata saya dapat error, 'Must declare the scalar variable "@column"

Bisa tolong masukannya kenapa @column gak dikenal sebagai value tapi sebagai
parameter terus.

Terima kasih.


Note: Contoh scriptnya dibawah.
-------------------------------------------------------------------------------------------------------


DECLARE @column varchar(50)
DECLARE @field_value varchar (50)
DECLARE @SQLString NVARCHAR(500);

SET @field_value = 'UAT'

DECLARE cr_column_names CURSOR
for
select column_name
from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'issues'

OPEN cr_column_names

FETCH NEXT FROM cr_column_names into @column
WHILE @@FETCH_STATUS = 0
BEGIN


/* Statement tambahan buat ngecek kenapa di void terus di IF EXIST bawah */
SET @SQLString =
N'SELECT * from issues where @column = @field_value';
EXECUTE (@SQLString)
/* *** */


IF EXISTS (SELECT * from issues where @column = @field_value)     /* Disini
kondisinya selalu FALSE */
select @column
ELSE
select 'Not found, desc: ' + @column + ' and Field value is ' + @field_value

FETCH NEXT FROM cr_column_names into @column
END
CLOSE cr_column_names
DEALLOCATE cr_column_names

Kirim email ke