Dinamik SQL'i ilk kez kullanmaya çalışıyorum - Şimdi bir an için bunu anladım ancak Dinamik SQL kullanarak geçici bir tabloya bir parametre girmeyi deniyorum. Sütun adı "sadece bir sütun olması niyetinde olmayan metin olarak girmeyi denediğimde. Bir tarafta Dinamik SQL kullanarak Geçersiz Sütun Adı
beni ben SQL Server 2005peşin Bu benim yürütme sorgu
SELECT ARCHV_FLAG,PATNT_REFNO,ACTIVE_NAMES,AINPT_REFNO INTO #TEMP FROM ACTIVE_NAMES WHERE PATNT_REFNO = 1 AND ARCHV_FLAG = 'C'
Fix SET @SQL = 'SELECT ARCHV_FLAG,PATNT_REFNO,'''[email protected] +''' AS [ACTIVE_NAMES],'+ @PK + ' INTO #TEMP FROM ' + @TABLE + ' WHERE PATNT_REFNO = '+ CAST(@PATNT AS VARCHAR (100))+ ' AND ARCHV_FLAG = ''C'''
çok teşekkürler bu çalıştırıyorum söz değerini not edin.
DECLARE
@SQL NVARCHAR(4000),
@SQL1 NVARCHAR(4000),
@TABLE VARCHAR (100),
@PK VARCHAR (50),
@PATNT INT
SET @PATNT = 1
CREATE TABLE #TEMP
(
ARCHV_FLAG VARCHAR (1),
PATNT_REFNO INT,
TABLE_NAME VARCHAR (100),
PRIMARY_KEY INT
)
CREATE TABLE #TABLE
(NAME VARCHAR (100))
INSERT INTO #TABLE (NAME) VALUES ('ACTIVE_NAMES')
SELECT * FROM #TABLE
DECLARE Cur CURSOR FOR
SELECT NAME FROM #TABLE
OPEN Cur
FETCH NEXT FROM Cur INTO @TABLE
WHILE @@FETCH_STATUS = 0
BEGIN
SET @PK = (SELECT C.NAME FROM SYS.COLUMNS C
JOIN SYS.tables T ON C.object_id = T.object_id
WHERE T.name = @TABLE AND C.is_identity = 1)
SET @SQL = 'SELECT ARCHV_FLAG,PATNT_REFNO,'[email protected] +','+ @PK + ' INTO #TEMP FROM ' + @TABLE + ' WHERE PATNT_REFNO = '+ CAST(@PATNT AS VARCHAR (100))+ ' AND ARCHV_FLAG = ''C'''
EXEC SP_EXECUTESQL @SQL
select @sql
FETCH NEXT FROM Cur INTO @TABLE
END
CLOSE Cur
DEALLOCATE Cur
SELECT * FROM #TEMP
DROP TABLE #TEMP
DROP TABLE #TABLE
u kullandığınız sürüm? Sonunda gayet iyi çalışıyor. – BNN
Sadece şunu eklemeyi unutmayın - SQL Server 2005'i çalıştırıyorum maalesef, – user3482471
soruyu güncelleyebilir, nereye ekleneceğini karıştırıyor. – BNN