PDA

View Full Version : کمک در مورد دستور select



mrt_Azm
دوشنبه 06 خرداد 1392, 12:55 عصر
سلام
میخواستم بدونم میشه دستور select را طوری نوشت که همه فیلد ها به جز یکی رو شامل بشه با این فرض که از تعداد و نوع فیلدها اطلاعی ندارم

مثلا
select * from customers
بطوریکه ID رو شامل نشه

ممنون

ali ghaemi
دوشنبه 06 خرداد 1392, 19:52 عصر
این کار امکان پذیر است اما نیاز به کد نویسی بیشتری دارد شما با استفاده از تابع Sys.Columns می تونید اسم فیلد های یک جدول رو بگیرید تو یک رشته ذخیره کنید و با تابع EXEC اجرا کنید

SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('Customers')



DECLARE @sqlCommand varchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)

SET @columnList = 'CustomerID, ContactName, City'
SET @city = '''London'''
SET @sqlCommand = 'SELECT ' + @columnList + ' FROM customers WHERE City = ' + @city
EXEC (@sqlCommand)

محمد سلیم آبادی
سه شنبه 07 خرداد 1392, 11:20 صبح
میخواستم بدونم میشه دستور select را طوری نوشت که همه فیلد ها به جز یکی رو شامل بشه با این فرض که از تعداد و نوع فیلدها اطلاعی ندارم
در حالت عادی این موضوع امکان پذیر نیست؛ نام ستون ها باید صراحتا بیان بشن. مگر اینکه بخواهید از روش های dynamic مثل پست قبل استفاده کنید.