How can i avoid using dynamic from clause? Even if i don't know the database name, i prefer to use a static statement
SQL 실 거예요 예는 아래를 참조한다 ,
다시 당신이
이
--This이 실패합니다 임시 테이블의 범위에 문제가있는 것 error..But을 방지하기 위해 동적 SQL로 조회를 변경
.. 동적 SQL을 피하기 becau 자체의 임시 테이블에 ..
Declare @sql nvarchar(4000)
set @sql='
select *
into #tempTable
from @DBName.Invoices
where InvoiceId = 5'
--- 하나의 옵션은 위의 임시 테이블 이후, 글로벌 임시 테이블
declare @dbname varchar(1000)
set @dbname=db_name()
declare @sql nvarchar(4000)
set @sql='select *
into ##tempTable
from '[email protected]+'.dbo.test_Delete '
exec(@sql)
select * from ##temptable
를 사용하지만 위의 방법과주의 하시고하는 글로벌 범위가 다른 범위에 해당
또한 OPENROWSET, 당신이 뭘 하려는지
select * into #temp from openrowset
('SQLNCLI','Server=yourinstancename;Trusted_Connection=yes;', 'select * form table')
이하와 같은 어떤 것을 사용할 수 있습니까? 동적 SQL을 사용하지 않고 변수에 보관 된 객체를 선택할 수 없습니다. –
불행히도 동적 SQL 만 도움이됩니다. 자신 만의 proc를 만들거나 지원되지 않는 sp_MSforEachDB를 사용할 수 있습니다. http://weblogs.sqlteam.com/joew/archive/2008/08/27/60700.aspx – Serg