サイクルでは、私が変換する必要がありますTSQL - ダイナミックコピーテーブル構造
SELECT * INTO #copiaTabella FROM #TABELLA WHERE 1 = 2
ダイナミック
EXECUTE('SELECT * INTO #copiaTabella FROM ' + @sNomeTabella_APPO + ' WHERE 1 = 2')
でだから、それは動作しません。それを行う方法はありますか? ありがとう
サイクルでは、私が変換する必要がありますTSQL - ダイナミックコピーテーブル構造
SELECT * INTO #copiaTabella FROM #TABELLA WHERE 1 = 2
ダイナミック
EXECUTE('SELECT * INTO #copiaTabella FROM ' + @sNomeTabella_APPO + ' WHERE 1 = 2')
でだから、それは動作しません。それを行う方法はありますか? ありがとう
ダイナミックT-SQLステートメントで作成された一時オブジェクトは、外部スコープでは表示されません。あなたは毎回異なるテーブル構造を作成する必要がある場合、あなたはダイナミックT-SQL文とでT-SQL操作の残りの部分を含まなければならない
EXECUTE sp_executesql N'CREATE TABLE #TEST ([a] INT);'
SELECT *
FROM #TEST;
Msg 208, Level 16, State 0, Line 3 Invalid object name '#TEST'.
:たとえば、次の例は、エラーが発生しますよく
あなたの答えをありがとう。あなたはどういう意味ですか: 毎回異なるテーブル構造を作成する必要がある場合は、残りのT-SQL操作をダイナミックT-SQLステートメントに含める必要があります。 – memmo77
このようなテーブルを作成し、それを使って(挿入/削除/選択)いくつかの処理を行う必要がある場合は、動的T-SQLでもこれらの操作を追加してすべて実行してください。 – gotqn
だから、それは動作します: \t 'code'EXECUTE(+ @sNomeTabella_APPO + 'WHERE 1 = 2' 'FROM copiaTabella ## INTO SELECT *') \t \t DECLAREの@sqlのNVARCHAR(MAX)は、NVARCHAR(MAXを@cols )= N "; \t SELECT @cols + = N '、' + name - + '' + system_type_name \t FROM sys.dm_exec_describe_first_result_set( 'SELECT * FROM ## copiaTabella'、NULL、1); \t SET @cols = STUFF(@cols、1,1、N "); \tプリント(@cols)\t \t \tドロップテーブル## copiaTabella 今の私は、みんなのおかげで解決しました! – memmo77
あなたの究極の目的によって異なります。 '#copiaTabella'は' EXECUTE() 'にスコープされているので、それは失敗します。したがって、その外には存在しません。 –
私はこれを行う必要があります:\t \t 'code' DECLARE @sql NVARCHAR(MAX)、@cols NVARCHAR(MAX)= N"; \t \t SELECT @cols + = N '' +名 - + '' + system_type_name \t \t sys.dm_exec_describe_first_result_set FROM( '#copiaTabella SELECT * FROM'、NULL、1)。 \t \t SET @cols = STUFF(@cols、1,1、N "); 'code' – memmo77
「動かない」と定義できますか? –