이미 솔루션을 검색했지만 답변이 내 문제를 해결하기에 충분하지 않았습니다.IF 문에있는 SELECT 문에서 테이블에 변수 사용
그래서 나는이 문이 :
IF NOT EXISTS
(SELECT InternalRepositoryId FROM Tfs_GitInterface.dbo.tbl_GitRepository WHERE Name = @repositoryName)
BEGIN
...
END
또는 가능한도 물론
:IF NOT EXISTS
(SELECT InternalRepositoryId FROM dbo.tbl_GitRepository WHERE Name = @repositoryName)
BEGIN
...
END
그것의 완전 잘 작동. 나는 dbo가 다른 데이터베이스에 대한 스키마라는 것을 언급하고자한다. 지금은이 같은 것을 만들고 싶어 :
DECLARE @schema [nvarchar](400);
SET @schema = 'dbo';
IF NOT EXISTS
(SELECT InternalRepositoryId FROM @schema.tbl_GitRepository WHERE Name = @repositoryName)
BEGIN
...
END
또는
DECLARE @schemaTable [nvarchar](400);
SET @schemaTable = 'dbo.tbl_GitRepository';
IF NOT EXISTS
(SELECT InternalRepositoryId FROM @schemaTable WHERE Name = @repositoryName)
BEGIN
...
END
가 지금은 이미 일부 동적 SQL을 시도를하지만 오류없이 작동하지 않을 것입니다 :
DECLARE @schemaTable [nvarchar](400);
SET @schemaTable = 'dbo.tbl_GitRepository';
DECLARE @sql [nvarchar](4000);
SET @sql = 'SELECT InternalRepositoryId FROM ' + @schemaTable + ' WHERE Name = ' + @repositoryName;
IF NOT EXISTS
(EXECUTE sp_executesql @sql)
BEGIN
...
END
그럼 난 얻을 EXECUTE의 오류 : 'EXECUTE'근처의 잘못된 구문. '('또는 SELECT) 및 몇 가지 사소한 오류가 예상 됨
누구든지이 일을하는 방법을 알았습니까?
편집 : IF 문은 큰 문제
그렇지는 동적 SQL에있는 경우 전체를 넣어해야합니다
가능한 중복 http://stackoverflow.com/questions/27710260/sql- if-exists-dynamic-query) – Tanner
링크 된 질문은 내가 한 일을하는 것처럼 보입니다. – Tanner
나는 이미 이와 같은 것을 시도했지만 효과가 없었습니다./ –