DECLARE @Count INTEGER
DECLARE @nSQL NVARCHAR(1000)
SET @nSQL = 'SELECT @Count = COUNT(*) FROM ' + @tablename
EXECUTE sp_executesql @nSQL, N'@Count INTEGER OUT', @Count OUT
-- Now check @Count
SQL 삽입까지 열어두면 동적 SQL에주의하십시오. 그러므로 @tablename이 삭제되었는지 확인하십시오. 당신이 알고, -1에
DECLARE @Count INTEGER
DECLARE @nSQL NVARCHAR(1000)
SET @nSQL = 'IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE [email protected])
SELECT @Count = COUNT(*) FROM ' + @tablename + '
ELSE
SELECT @Count = -1'
EXECUTE sp_executesql @nSQL, N'@TableName NVARCHAR(128), @Count INTEGER OUT', @TableName, @Count OUT
@Count 다음 오면 아웃 :
한 검사는 테이블이 동적 쿼리를 시도하기 전에 매개 변수화 쿼리를 사용하여 존재 확인하여,이 같은 것이 안전합니다 TABLENAME이 유효 때문이다
편집 :에서 sp_executesql에
참조 이것은 W해야 here
'@ COUNT'은 유효한 값이 아닌 SELECT COUNT (*) FROM xxxx 값을 가진 varchar이기 때문에 작동하지 않습니다. :) 답변에 설명 된대로 동적 SQL을 사용하십시오. –