Create view xxx
as
Select * from
DBName.dbo.table1
DBName
は動的です。このビューを作成するにはどうすればよいですか?ビューでは動的変数を使用できないことはわかっています。私はそれがどのように機能の助けを借りてできるのか知りたかったのです。ビュー内での動的DB名の使用
Create view xxx
as
Select * from
DBName.dbo.table1
DBName
は動的です。このビューを作成するにはどうすればよいですか?ビューでは動的変数を使用できないことはわかっています。私はそれがどのように機能の助けを借りてできるのか知りたかったのです。ビュー内での動的DB名の使用
用途この
Declare @Dbname varchar(255)
Declare @qry varchar(255)
Set @Dbname="Name of the dataBase"
Set @qry='Create synonym ABC for'[email protected]+'.dbo.table1'
Exec (@qry)
のような変数は、今すぐ下記を使用してより良く理解するために、この
IF EXISTS (SELECT 1 from sysobjects where id=object_id(''SN_DWTableCustomer'') and xtype=''SN'')
BEGIN
DROP VIEW xxx
Create view xxx as Select * from ABC
END
ELSE
BEGIN
Create view xxx as Select * from ABC
END
を使用すると、 https://www.techonthenet.com/oracle/synonyms.php What is the use of SYNONYM in SQL Server 2008?
をしてくださいリンクとしてだけDBNAMEを通過し、ここでシノニムを使用することができます応答。
しかし、DBNameが変更された場合はどうなりますか?上記のコードを実行してビューを作成する必要があります。他にも解決策がありますか? – RAJ
単にビューを削除し、再度作成するか、別のテーブルで表示する必要があります。 –
DECLARE @DBname varchar(max) = 'newdb'
DECLARE @sql varchar(max) = 'create view MyView as select * from '[email protected]+'.dbo.test'
EXEC (@sql)
SELECT * FROM MyView
DECLARE @DB VARCHAR(100)
SET @DB = 'Your_DBName' DECLARE @CreateViewStatement NVARCHAR(MAX)
SET @CreateViewStatement = ' USE '+ QUOTENAME(@DB) +';
EXEC(''
CREATE VIEW [dbo].[MyTable] AS
SELECT * FROM Your_Table
'') '
EXEC (@CreateViewStatement)
それはビューでなければなりませんか? –
はい。それはビューでなければなりません。私はselect *の出力をテーブル値関数を介してビューから呼び出すことを考えていました。私が正しい場合、関数内で動的変数を使用することができます – RAJ
残念ながら、関数内で動的SQLを使用することはできません。詳細はこちら[http://stackoverflow.com/questions/9607935/call-dynamic-sql-from-関数)。 –