ورود

View Full Version : چندتا سوال در مورد تعریف متغییر و view ها؟



MiniMicro
چهارشنبه 18 اردیبهشت 1392, 11:48 صبح
سلام دوستان من وقتی یه متغییر تعریف میکنم و قتی که میخوام در سطر بعد یه مقداری رو به متغییر بدم SQL Server این خطا رو میده:
تعریف متغییر:
DECLARE @I INT
خطا:
Must declare the scalar variable "@I".

و وقتی که یک view تعریف میکنم این خطا رو میده:
کد view:
create view v003 with schemabinding , encryption
as
select
name,F_name,city,major
from student
go
اینم خطا:
Cannot schema bind view 'dbo.v003' because name 'student' is invalid for schema binding. Names must be in two-part format and an object cannot reference itself.

ممنون میشم راهنمایی کنید.

khayyams.votary
چهارشنبه 18 اردیبهشت 1392, 12:15 عصر
برای تعریف در SQL باید از ";" استفاده کنید
declare @I int;
set @I=12;
print @I;

در مورد سوال دوم هم میشه گفت که به نام جدولی که از آن سلکت میی کنید خطا می دهد که احتمالا به خاطر مشخص نکردن دیتابیس خواهد بود که با "Use" مشکل حل میشه
CREATE VIEW dbo.all_supplier_view
WITH SCHEMABINDING
AS
SELECT supplyID, supplier
FROM dbo.SUPPLY1;

MiniMicro
چهارشنبه 18 اردیبهشت 1392, 12:20 عصر
برای تعریف در SQL باید از ";" استفاده کنید
declare @I int;
set @I=12;
print @I;


سلام دوست عزیز ممنون از راهنماییت ولی باز هم همون خطا رو میده من از SQL Server 2012 استفاده میکنم.آیا ممکنه بخاطر ورژن SQL Server باشه؟

hossein_h62
چهارشنبه 18 اردیبهشت 1392, 12:47 عصر
چجوری متغیرتون رو مقداردهی میکنید؟ کدتون رو بنویسید.

یوسف زالی
چهارشنبه 18 اردیبهشت 1392, 13:09 عصر
سلام.
فکر می کنم در دو Session متفاوت دارید کار می کنید.
کدتون رو بگذارید. توضیح کافی هم بگذارید.

MiniMicro
چهارشنبه 18 اردیبهشت 1392, 15:52 عصر
سلام.
فکر می کنم در دو Session متفاوت دارید کار می کنید.
کدتون رو بگذارید. توضیح کافی هم بگذارید.

ممنون از راهنماییتون من اول یه دیتابیس درست میکنم و بعد جدول و بعد از اون هم ویو:
create database college
use college
create table student(ID int primary key identity(1000,1),
name nvarchar(15),F_name nvarchar(15),Average float,age int,city nvarchar(20),major nvarchar(20))

برای تعریف متغییر و مقدار دهی به اون:

DECLARE @X INT;
SET @X=12;

OR
DECLARE @X INT
SET @X=12


اگر سطر اول رو اجرا کنم با موفقیت اجرا میشه ولی وقتی که سطر دوم رو اجرا میکنم خطای زیر رو بر میگردونه:
Must declare the scalar variable "@X".

MiniMicro
پنج شنبه 19 اردیبهشت 1392, 09:53 صبح
آقا کسی نبود ما رو یه راهنمایی کنه؟

khayyams.votary
پنج شنبه 19 اردیبهشت 1392, 14:20 عصر
دوست عزیز امکان داره شما موقع اجرا سطر ها رو تک تک انتخاب می کنید و اجرا می کنید "البته معذرت می خوام اینو میگم ها چون تو نوشته هاتون گقته بودین می گم"
من اون کدی رو که قرار دادم خودم امتحان کردم ، کاملا جواب داد شما هم برای اجرا کل کد رو یک جا اجرا کنید.
به ورژن هم ربطی نداره چون چیزی که ما داریم اینجا مینویسیم اونقدر ابتدایی هست که همه ورژن های SQL ازش پشتیبانی میکنند.