PDA

View Full Version : شکست دستور در چند خط (خیلی ضروری)



j.farazani
پنج شنبه 29 شهریور 1386, 21:51 عصر
با سلام خدمت دوستان عزیزم

چطوری میشه دستورات یک متن را در چند سطر شکست
فرض کنید می خواهید 1000 کاراکتر دستور را در یک متغیر به نام @cmd جای بدید اما لازم هست که وقتی به کاراکتر 50 رسیدی دستور go را در خط بعدی قرار دهید و... چه طور میشه این کار رو انجام داد؟

دوستان بد جوری گیر کردم
بزرگی می کنید

MShirzadi
جمعه 30 شهریور 1386, 07:01 صبح
اینجوری :

Set @cmd = '
دستورات
'
یکی از این دستوراتی که همین الان نوشتم و کل Trigger های Database من رو Disable می کرد این بود


Declare T Cursor For
Select Name From sysobjects where type = 'TR'
Open T
Declare @trgName Nvarchar(100)

Declare @cmd Nvarchar(4000)
Set @cmd=''
Fetch T into @trgName
While(@@Fetch_Status = 0)
Begin
Set @Cmd = '
Declare @tblName Nvarchar(100)
Set @tblName = (Select t2.name From sysobjects t1 inner join sysobjects t2 on t1.Parent_obj=t2.id where t1.name = ''' + @trgName + ''' )
Declare @cmd Nvarchar(100)
Set @cmd = ''
Alter Table '' + @tblName + '' Enable Trigger ' + @trgName + '

''
EXEC (@cmd)
'
EXEC(@cmd)
Fetch Next From T into @trgName
End
deallocate T


Select t2.name From sysobjects t1 inner join sysobjects t2 on t1.Parent_obj=t2.id where t1.name = ''

امید وارم جوابتو گرفته باشی

supporter
جمعه 30 شهریور 1386, 12:14 عصر
با سلام،



SET @Cmd= 'CREAET TABLE ...' + Char(13) + Char(10) +
'GO' +
'INSERT INTO ...'

j.farazani
جمعه 30 شهریور 1386, 15:10 عصر
از همگی اساتید و دوستان عزیزم یک دنیا ممنونم
لطف کردید .