タグ付けされた質問 「sql-server-2008」

MicrosoftのSQL Serverの2008バージョンに固有の質問には、このタグを使用します。

11
行が存在するかどうかを確認し、存在しない場合は挿入します
テーブルの行を更新するT-SQLストアドプロシージャを作成する必要があります。行が存在しない場合は挿入します。このすべてのステップはトランザクションによってラップされます。 これは予約システム用であり、アトミックで信頼性の高いものでなければなりません。トランザクションがコミットされ、フライトが予約されている場合は、trueを返す必要があります。 T-SQLは初めてなので、使い方がわかりません@@rowcount。これは私が今まで書いたものです。私は正しい道を進んでいますか?きっとあなたにとって簡単な問題だと思います。 -- BEGIN TRANSACTION (HOW TO DO?) UPDATE Bookings SET TicketsBooked = TicketsBooked + @TicketsToBook WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook) -- Here I need to insert only if the row doesn't exists. -- If the row exists but the condition TicketsMax is violated, …


10
SQL Serverの別のデータベースに復元する方法は?
1 週間前のDatabase1のバックアップがあります。バックアップはスケジューラで毎週行われ、.bakファイルを取得します。次に、いくつかのデータをいじりたいので、別のデータベース(Database2)に復元する必要があります。 私はこの質問を見ました:SQL Serverデータベースを同じPCに別の名前で復元し、元のデータベースの名前を変更することをお勧めしますが、本番サーバーにいるため、そのオプションがなく、実際には実行できません。 Database2その.bakファイルのデータを参照するには、他の方法、または少なくとも、どのように復元しますか? ありがとう。 ps:上記のリンクからの2番目の答えは有望に見えましたが、エラーで終了し続けます: ファイルリストの復元が異常終了しています

11
SQL Server 2008 Expressのローカルインスタンスに接続する方法
SQL Server 2008 ExpressをVista SP1マシンにインストールしました。私は以前ここで2005を使用していて、古いSQL Server Management Studio Expressで問題なく使用しました。PC-NAME \ SQLEXPRESSインスタンスに問題なく接続できました(いいえ、PC-NAMEは私のコンピュータ名ではありません;-)。 2005とSQL Server Management Studio Expressをアンインストールしました。次に、マシンにSQL Server 2008 Expressをインストールし、SQL Server Management Studio Basicをインストールすることを選択しました。 ここで、PC-NAME \ SQLEXPRESSに接続しようとすると(いつものようにWindows認証を使用して)、次のメッセージが表示されます。 PC-NAME \ SQLEXPRESSに接続できません。SQL Serverへの接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー)(Microsoft SQL Server、エラー:-1)ヘルプが必要な場合は、http://go.microsoft.com/fwlink?ProdName = Microsoft + SQLをクリックしてください。 + Server&EvtSrc = MSSQLServer&EvtID = -1&LinkId = 20476 SQL Server 2008をインストールしたとき、SQLEXPRESSをローカルインスタンス名として使用しました。私の知る限り、SQL Serverは、SQL Server構成マネージャーを通じて、リモート接続を許可するように構成されています。 …




3
SQL Server 2008でテーブルエイリアスを使用してUPDATE SQLを書き込む方法
私は非常に基本的ですUPDATE SQL- UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101; このクエリは、に罰金を実行しOracle、Derby、MySQL-それは、SQL Server 2008で失敗し 、次のエラーで: 「メッセージ102、レベル15、状態1、行1「Q」付近の構文が正しくありません。」 SQLからエイリアス「Q」をすべて削除すると、機能します。 しかし、私はエイリアスを使用する必要があります。


2
複数の「with」を使用できますか?
ちょうど例: With DependencedIncidents AS ( SELECT INC.[RecTime],INC.[SQL] AS [str] FROM ( SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A CROSS JOIN [Incident] AS X WHERE patindex('%' + A.[Col] + '%', X.[SQL]) > 0 ) AS INC ) With lalala AS ( SELECT INC.[RecTime],INC.[SQL] AS [str] FROM ( SELECT …

9
マルチステートメントテーブル値関数とインラインテーブル値関数
念のため、いくつかの例を示します。 インラインテーブルの評価 CREATE FUNCTION MyNS.GetUnshippedOrders() RETURNS TABLE AS RETURN SELECT a.SaleId, a.CustomerID, b.Qty FROM Sales.Sales a INNER JOIN Sales.SaleDetail b ON a.SaleId = b.SaleId INNER JOIN Production.Product c ON b.ProductID = c.ProductID WHERE a.ShipDate IS NULL GO 価値のあるマルチステートメントテーブル CREATE FUNCTION MyNS.GetLastShipped(@CustomerID INT) RETURNS @CustomerOrder TABLE (SaleOrderID INT NOT NULL, CustomerID …


12
2つのテーブル間の違いを返すSQLクエリ
SQL Serverという2つのテーブルを比較して、いくつかのデータを確認しようとしています。データがどちらか一方にある両方のテーブルからすべての行を返したいのですが。本質的に、すべての不一致を示したいと思います。その際、FirstName、LastName、Productの3つのデータを確認する必要があります。 私はSQLにかなり慣れていないので、私が見つけている解決策の多くは複雑なものを超えているようです。NULLについて心配する必要はありません。 私はこのようなことを試すことから始めました: SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data] WHERE ([First Name] NOT IN (SELECT [First Name] FROM [Real Data])) 私はこれをさらに進めるのに苦労しています。 ありがとう! 編集: @treaschfの回答に基づいて、私は次のクエリのバリエーションを使用しようとしています: SELECT td.[First Name], td.[Last Name], td.[Product Name] FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d ON …

15
SQL Serverデータベースのすべてのテーブルを削除する方法は?
SQL Serverデータベースを完全に空にするスクリプトを記述しようとしています。これは私がこれまでに持っているものです: USE [dbname] GO EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' EXEC sp_msforeachtable 'DELETE ?' Management Studioで実行すると、次のようになります。 コマンドが正常に完了しました。 しかし、テーブルリストを更新しても、すべて表示されたままです。何が悪いのですか?

10
既存のテーブルに主キーを追加する
という既存のテーブルがありますPersion。この表には5つの列があります。 persionId プネーム PMid 説明 Pamt このテーブルを作成したときに、PersionIdおよびPnameを主キーとして設定しました。 次に、主キーにもう1つの列(PMID)を含めます。ALTERこれを行うためのステートメントをどのように書くことができますか?(テーブルにはすでに1000レコードあります)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.