PDA

View Full Version : چگونگی ایجاد متغیر ها در syntax select



saed2006
دوشنبه 20 آبان 1387, 09:35 صبح
با سلام
چطوری میتونم دستوری بنویسم که نام فیلدی از جدول رو متغیر در نظر بگیره؟
و یا هنگام دستور where را با یک رشته و نام متغیر مقایسه کند؟
اینو نوشتم

"SELECT MAX(@numsex) FROM rang

ولی مقادیر درست نمی دهد

odiseh
دوشنبه 20 آبان 1387, 09:45 صبح
books online رو اجرا کن و دنبال توضیحات و مثالهای sp_executesql بگرد.

saed2006
دوشنبه 20 آبان 1387, 10:16 صبح
این دستور رو نوشتم ولی خطا میدهد

sp_executesql 'Select * from ' + @MyTable +' where somecol = @ColVal' , '@ColVal int', @ColValue

odiseh
دوشنبه 20 آبان 1387, 11:20 صبح
برای اینکه مطمئن بشی کارت درست بوده :
اول یه متغیر از جنس varchar با طول مثلا 200 بگیر.
بعدش دستور Select رو توی اون متغیرت بریز.
بعد این متغیر رو print کن ببین Print شدش اصلا اجرا میشه.
بعد که مطمئن شدی همه چیز درسته با sp_executesql اجراش کن.

saed2006
دوشنبه 20 آبان 1387, 11:53 صبح
اقا من این کد رو با کمک خود msdn نوشتم ولی باز هم درست اجرا نمیشه




DECLARE @ENTITY nvarchar(100) --No space between nvarchar and (
SET @ENTITY ='male'
DECLARE @KEYID nvarchar(100)
DECLARE @KeyValue INT
DECLARE @SQL1 NVARCHAR(1000)
SET @SQL1 = 'Select @ENTITY ='+@ENTITY + ' FROM rang '
EXECUTE sp_executesql @SQL1, N'@KeyValue INT OUTPUT', @ENTITY OUTPUT --First string with parameters declaration, then values