동적 대량 가 져 오기 보기, 저장 프로 세 스 및 트리거
2156 단어 SQL
1. 새 데이터베이스 이름 은 T65 이 고 데이터 베 이 스 는 저장 과정, 트리거, 보기 와 표를 포함 하지만 데이터 가 없습니다 (새 고객 이 사용 하 는 데이터 베 이 스 는 이미 존재 합 니 다).
2. 다음 sql 문 구 를 쓰 십시오. 다음 과 같 습 니 다.
USE EMan
GO
--
IF NOT EXISTS(select * From master.dbo.sysdatabases where name='T65')
BEGIN
EXEC sp_attach_db @dbname = 'T65',
@filename1 = 'c:\upem\T65.mdf',
@filename2 = 'c:\upem\T65_log.ldf'
END
GO
-- ,
DECLARE @col NVARCHAR(50);
DECLARE @sql NVARCHAR(256);
DECLARE datas CURSOR FOR SELECT name, CASE WHEN xtype ='P' THEN 'PROCEDURE' WHEN xtype ='V' THEN 'VIEW' ELSE 'TRIGGER' END col
FROM sysobjects WHERE xtype IN ('TR','V') OR (category = 0 AND xtype ='P') ORDER BY xtype, name
OPEN datas;
FETCH next FROM datas INTO @sql, @col;
WHILE @@FETCH_STATUS=0
BEGIN
EXEC('DROP ' + @col + ' ' + @sql)
FETCH next FROM datas INTO @sql, @col;
END;
CLOSE datas;
DEALLOCATE datas;
GO
-- ,
DECLARE @sql NVARCHAR(MAX);
DECLARE @col NVARCHAR(100);
DECLARE datas CURSOR FOR
SELECT com.text,obs.name
FROM T65.dbo.sysobjects obs INNER JOIN T65.dbo.syscomments com ON obs.id = com.id
WHERE obs.xtype IN ('TR', 'V') OR (obs.category = 0 AND obs.xtype = 'P')
ORDER BY obs.xtype DESC, obs.name
OPEN datas;
FETCH next FROM datas INTO @sql, @col;
WHILE @@FETCH_STATUS=0
BEGIN
if ( @sql is not null)
BEGIN
EXEC sp_executesql @sql;
if @@error <>0
print @sql;
END;
FETCH next FROM datas INTO @sql, @col;
END;
CLOSE datas;
DEALLOCATE datas;
GO
--
IF EXISTS(select * From master.dbo.sysdatabases where name='T65')
EXEC sp_detach_db @dbname = 'T65'
설명: EMan 은 기업 의 오래된 데이터 베 이 스 를 대표 합 니 다.T65 는 새 데이터 베 이 스 를 대표 합 니 다.이상 코드 는 sql server 2005 에서 테스트 에 성공 하 였 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.