Usuário com melhor resposta
Campo auto-incremento

Pergunta
-
Respostas
-
sim.
DECLARE @QUERY AS VARCHAR (8000)
SET @QUERY = 'SELECT X FROM ' + @TABLENAME
EXEC (@QUERY)
se você precisar retornar o valor, talvez seja mais facil usar a [sp_executesql] ao invés de EXEC, veja no BooksOnline "sp_executesql" que tem uns exemplos bons
Todas as Respostas
-
Apesar de o SQL ser o mais indicado, caso vc queira fazer via procedure, vc pode fazer é
Insert
PROCEDUREINSERT
SELECT @NEXTID = MAX(ID) + 1 FROM TABELA
INSERT INTO TABELA VALUES (@NEXTID, 'XXXXXXXXXXXX')
Voce pode ou deve usar outros recursos como transação / trycatch / etc para gerenciar concorrencia
-
-
Função seria meio complicado, pois você não poderia usar query dinamica e teria que fazer varios ifs ou CASE, mas dá
o jeito seria
IF @TABELA = 'TABELA1'
SELECT @NEXTID = MAX(ID) FROM TABELA1
IF @TABELA = 'TABELA2'
SELECT @NEXTID = MAX(ID) FROM TABELA2
IF @TABELA = 'TABELA3'
SELECT @NEXTID = MAX(ID) FROM TABELA3
return @NEXTID
-
-
sim.
DECLARE @QUERY AS VARCHAR (8000)
SET @QUERY = 'SELECT X FROM ' + @TABLENAME
EXEC (@QUERY)
se você precisar retornar o valor, talvez seja mais facil usar a [sp_executesql] ao invés de EXEC, veja no BooksOnline "sp_executesql" que tem uns exemplos bons