PDA

View Full Version : مشکل در استفاده از دستور declare



Restlesa
دوشنبه 26 آبان 1393, 14:27 عصر
سلام بر همگی دوستان عزیز برنامه نویس
در تعریف یک متغیر مشکل دارم
من از برنامه navicat برای ساخت جداول sqlite استفاده می کنم و برای ساخت trigger از کد زیر استفاده می کنم
BEGIN
DECLARE @id INT;
END
از دستور declare ایراد می گیره و میگه که syntax ایراد داره
میشه راهنماییم کنید و بگید که ایراد دستور بالا چیه؟

حمیدرضاصادقیان
دوشنبه 26 آبان 1393, 14:53 عصر
سلام
این دستور برای ساخت تریگر نیست.
به جز این نیازی به begin end ندارد.

Restlesa
دوشنبه 26 آبان 1393, 16:16 عصر
کاری که می خولم انجام بدم اینه که مقدار فیلد name تو بخونم و در یه متغیر ذخیره کنم تا بدن بتونم ازش استفاده کنم که تو تعریف متغیر به مشکل برخوردم
دستور تعریف رو قبل از BEGIN گذاشتم اما بازم از سبنتکسش ایراد گرفت

حمیدرضاصادقیان
دوشنبه 26 آبان 1393, 17:02 عصر
لطفا کل دستوری که نوشتید رو اینجا بذارید.

pashna
سه شنبه 27 آبان 1393, 02:42 صبح
SyntaxDECLARE
{{ @local_variable [AS] data_type }
| { @cursor_variable_name CURSOR }
| { table_type_definition }
} [ ,...n]

< table_type_definition > ::=
TABLE ( { < column_definition > | < table_constraint > } [ ,... ]
)

< column_definition > ::=
column_name scalar_data_type
[ COLLATE collation_name ]
[ [ DEFAULT constant_expression ] | IDENTITY [ ( seed, increment ) ] ]
[ ROWGUIDCOL ]
[ < column_constraint > ]

< column_constraint > ::=
{ [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| CHECK ( logical_expression )
}

< table_constraint > ::=
{ { PRIMARY KEY | UNIQUE } ( column_name [ ,... ] )
| CHECK ( search_condition )
}

Example :


USE pubs
DECLARE @find varchar(30)
SET @find = 'Ring%'
SELECT au_lname, au_fname, phone
FROM authors
WHERE au_lname LIKE @find

Restlesa
چهارشنبه 28 آبان 1393, 17:06 عصر
لطفا کل دستوری که نوشتید رو اینجا بذارید.
CREATE TRIGGER "Edit" AFTER INSERT ON "tbl_category"
BEGIN
DECLARE @id INTEGER;
.
.
.
END;

pashna
چهارشنبه 28 آبان 1393, 23:42 عصر
CREATE TRIGGER Name ON Table
AFTER INSERT
AS
BEGIN
DECLARE @id INT
.
.
.
END