View Full Version : سوال: دریافت مقادیر ارسال شده توسط SQL
samprp
پنج شنبه 28 شهریور 1387, 22:29 عصر
با سلام
این کد تو Managment Studio اسکوئل سرور 2005 جواب می ده .
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'Store')
PRINT 'Store EXIST'
ELSE PRINT 'Store NOT EXIST'
چه طوری تو دلفی اون مقادیر Store exist یا Store NOT EXIST رو دریافت کنم .
با تشکر
Hsimple11
پنج شنبه 28 شهریور 1387, 23:32 عصر
میتونید نتیجه کوئری را به نام یک ALIAS ثبت کنید و سپس آنرا مانند یک فیلد بخوانید.
samprp
جمعه 29 شهریور 1387, 20:04 عصر
سلام
این alias منظروتون همون as و بعدش یه نام هست دیگه . تو همین کوئری پست اولی کجاش باید بزارم .
در ضمن اگه یه متغیر رو بخوایم برگردونیم آیا اینم باید براش alias تعریف کنیم یا ...
ببخشید یه سوال دیگه هم داشتم
تو بک آپ گیری از DB تو خود اسکوئل آرگومان State هست که برای ارسال میزان انجام شدن (progress) بک آپ فرستاده می شه . اونو چه طوری می شه گرفت و ازش استفاده کرد ؟
samprp
جمعه 29 شهریور 1387, 22:02 عصر
DECLARE @ali as varchar(8)
BEGIN
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'Store')
set @ali = 'EXIST'
ELSE set @ali = 'NOT EXIST'
END
SELECT @ali AS ali
این روش بالا جواب می ده . امتحان کردم
به نظر شما این روش کار درستیه ؟؟؟
Hsimple11
جمعه 29 شهریور 1387, 22:23 عصر
نیازی به اینکار نبود. بله ALIAS بعد از SELECT Statement ما تعریف می شود. مثلا :
Select Max(ID) As Maximum From MyTbl Where Condition
samprp
شنبه 30 شهریور 1387, 02:28 صبح
خوب آخه تو این دستور :
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'Store')
PRINT 'Store EXIST'
ELSE PRINT 'Store NOT EXIST
که اصلا نه SELECT ی وجود داره و نه AS می شه اضافه کرد یعنی من هر جا اضافه کردم نشد .
الان تو این کد بالا AS رو به کجا اضافه کنم ؟
با تشکر
vcldeveloper
شنبه 30 شهریور 1387, 07:25 صبح
این روش بالا جواب می ده . امتحان کردم
به نظر شما این روش کار درستیه ؟؟؟
برای اون کد T-SQL ایی که نوشتید، آره.
Hsimple11
شنبه 30 شهریور 1387, 11:13 صبح
هر زمان که رکوردهایی را کوئری می کنید میتوانید آنها را به یک ALIAS نسبت دهید. در هر کوئری.
samprp
شنبه 30 شهریور 1387, 11:40 صبح
آخه چه طوری
تو اون کوئری پست ششم من کجا بهش یه آلیز نسبت بدم ؟
vcldeveloper
شنبه 30 شهریور 1387, 18:22 عصر
در اون کد بالا با Alias نمی تونید کار خاصی بکنید، چون شما می خواید نتیجه شرط IF Exists را برگدونید، پس یا باید با استفاده از T-SQL کدی مثل کد پست شماره 4 بنویسید.
راه دیگه اینه که از تابع Count استفاده کنید، چون شرط IF EXISTS فقط بررسی میکنه که آیا کوئری رکوردی برمیگردونه یا نه، خب پس میشه اینو اینطوری هم نوشت:
SELECT COUNT(FieldName) FROM TableName WHERE FieldName = AValue
به این ترتیب نتیجه کوئری فقط یک عدد خواهد بود. در ضمن، درباره نام فیلد Name هم دقت کنید، شاید لازم باشه آن را داخل [] بزارید، چون یک کلمه رزرو شده هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.